fetchesAddress = $fetchesAddress; $this->resetsAddressDefault = $resetsAddressDefault; $this->setsAddressDefault = $setsAddressDefault; } /** * @return array */ protected function notification():array { return [ 'title' => 'Set Default Address', 'message' => 'You have successfully updated your default address' ]; } /** @var FetchesAddress */ private $fetchesAddress; /** @var ResetsAddressDefault */ private $resetsAddressDefault; /** @var SetsAddressDefault */ private $setsAddressDefault; /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $address = $this->fetchesAddress->execute(['id' => $request->route('id')]); $this->resetsAddressDefault->execute($address); $this->setsAddressDefault->execute($address); return $this->resourceResponse(new AddressResource($address)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }