/** * @param $address * @param null $owner * @return mixed */ public function primarizeAddress(Address $address, $owner = null) { $repository = $this->getAddressRepository(); if (!$owner) { $owner = $address->getOwner(); } /** @var Address $primaryAddress */ if ($primaryAddress = $repository->whereOwner($owner)->scopes('primary')->first()) { $primaryAddress->setPrimary(false); $repository->save($primaryAddress); } list($updated, $address) = $repository->save($address->setPrimary()); return $address; }