public function save($markerSite, $nonStandardDistributionName) { DB::beginTransaction(); try { if ($nonStandardDistributionName) { $markerSite->distribution = Distribution::create(["name" => $nonStandardDistributionName])->id; Log::info("created new distribution " . $nonStandardDistributionName); } $markerSite = $markerSite->id ? $this->updateSite($markerSite, $nonStandardDistributionName) : $this->createNewSite($markerSite, $nonStandardDistributionName); DB::commit(); return $markerSite; } catch (Exception $e) { DB::rollback(); } }