authorize('manageOwnProfile', Customer::class); return view('fo.customer.dashboard'); } public function editInfos(GetCrmCustomerQuery $getCrmCustomerQuery): View { $this->authorize('manageOwnProfile', Customer::class); $crmCustomer = $this->executor->execute( $getCrmCustomerQuery, new GetCrmCustomerQueryInput() ); abort_unless( $crmCustomer->customer instanceof CrmCustomer, 503, trans('An error occurred, please try again later.') ); return view('fo.customer.edit.infos', compact('crmCustomer')); } public function editInfosSubmit(UpdateInfosRequest $request, UpdateCustomer $updateCustomer): RedirectResponse { $this->authorize('manageOwnProfile', Customer::class); $result = $this->executor->execute( $updateCustomer, $request->toUpdateCustomerInput() ); return match ($result) { $result instanceof CrmCustomer => back() ->with('success', trans('Your information has been saved.')), $result instanceof ValidationException => back() ->withInput() ->withErrors($result->getMessage()), default => back() ->withInput() ->withErrors(trans('An error occurred, please try again later.')), }; } }