canApproveChangeOrderAddress = $canApproveChangeOrderAddress; $this->fetchesAddress = $fetchesAddress; $this->updatesOrdersAddress = $updatesOrdersAddress; $this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor; } /** * @param Request $request * @return mixed * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Request $request) { $status = (int) $request->route('status'); $this->canApproveChangeOrderAddress->passes(); $address = $this->fetchesAddress->execute(['id' => $request->route('id')]); if($status === ApprovalStatus::APPROVED){ $address->owner->addresses()->update(['status' => ApprovalStatus::EXPIRED]); } $address = $this->updatesOrdersAddress->execute($address, $status); $vt_do_update = $this->updateDoFromVTPortalProcessor->execute($address); return $address; } }