authorize('viewAny', PickupException::class); $pickupExceptions = $this->executor->execute( $query, new GetPaginatedPickupExceptionsQueryInput( pagination: $request->pagination(), ), ); return view('bo.pickup-exceptions.index', compact('pickupExceptions')); } public function create(): View { $this->authorize('create', PickupException::class); return view('bo.pickup-exceptions.create'); } public function store(StorePickupExceptionRequest $request, CreatePickupException $action): RedirectResponse { $this->authorize('create', PickupException::class); $pickupException = $this->executor->execute( $action, $request->toCreatePickupExceptionInput(), ); return to_route('bo.pickup-exceptions.edit', $pickupException) ->with('success', trans('crud.messages.has_been_created', [ 'model' => Str::ucfirst(trans_choice('models.classes.pickup-exceptions', 1)), ])); } public function edit(PickupException $pickupException): View { $this->authorize('update', $pickupException); $pickupException = PickupExceptionDto::fromModel($pickupException); return view('bo.pickup-exceptions.edit', compact('pickupException')); } public function update(UpdatePickupExceptionRequest $request, PickupException $pickupException, UpdatePickupException $action): RedirectResponse { $this->authorize('update', $pickupException); $this->executor->execute( $action, $request->toUpdatePickupExceptionInput($pickupException), ); return to_route('bo.pickup-exceptions.edit', $pickupException) ->with('success', trans('crud.messages.has_been_updated', [ 'model' => Str::ucfirst(trans_choice('models.classes.pickup-exceptions', 1)), ])); } public function destroy(PickupException $pickupException, DeletePickupException $action): RedirectResponse { $this->authorize('delete', $pickupException); $this->executor->execute( $action, new DeletePickupExceptionInput(pickupException: $pickupException), ); return to_route('bo.pickup-exceptions.index') ->with('warning', trans('crud.messages.has_been_deleted', [ 'model' => Str::ucfirst(trans_choice('models.classes.pickup-exceptions', 1)), ])); } }