authorize('viewAny', Range::class); $pagination = RequestHelper::pagination($request); $ranges = $this->executor->execute( $query, new GetPaginatedRangesQueryInput( pagination: $pagination, ) ); return view('bo.ranges.index', compact('ranges')); } public function create(): View { $this->authorize('create', Range::class); return view('bo.ranges.create'); } public function store(StoreRangeRequest $request, CreateRange $action): RedirectResponse { $this->authorize('create', Range::class); $range = $this->executor->execute( $action, $request->toCreateRangeInput(), ); return to_route('bo.ranges.edit', $range) ->with('success', trans('crud.messages.has_been_created', [ 'model' => Str::ucfirst(trans_choice('models.classes.ranges', 1)), ])); } public function edit(Range $range): View { $this->authorize('update', $range); $range = RangeDto::fromModel($range); return view('bo.ranges.edit', compact('range')); } public function update(UpdateRangeRequest $request, Range $range, UpdateRange $action): RedirectResponse { $this->authorize('update', $range); $this->executor->execute( $action, $request->toUpdateRangeInput($range), ); return to_route('bo.ranges.edit', $range) ->with('success', trans('crud.messages.has_been_updated', [ 'model' => Str::ucfirst(trans_choice('models.classes.ranges', 1)), ])); } public function destroy(Range $range, DeleteRange $action): RedirectResponse { $this->authorize('delete', $range); $this->executor->execute( $action, new DeleteRangeInput(range: $range), ); return to_route('bo.ranges.index') ->with('warning', trans( 'crud.messages.has_been_deleted', ['model' => Str::ucfirst(trans_choice('models.classes.ranges', 1))] )); } }