authorize('viewAny', Slide::class); $slides = $this->executor->execute( $query, new GetPaginatedSlidesQueryInput( pagination: RequestHelper::pagination($request), ), ); return view('bo.slides.index', compact('slides')); } public function create(): View { $this->authorize('create', Slide::class); return view('bo.slides.create'); } public function store(StoreSlideRequest $request, CreateSlide $action): RedirectResponse { $this->authorize('create', Slide::class); $slide = $this->executor->execute( $action, $request->toCreateSlideInput(), ); return to_route('bo.slides.edit', $slide) ->with('success', trans('crud.messages.has_been_created', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); } public function edit(Slide $slide): View { $this->authorize('update', $slide); return view('bo.slides.edit', [ 'slide' => SlideDto::fromModel($slide), ]); } public function update(UpdateSlideRequest $request, Slide $slide, UpdateSlide $action): RedirectResponse { $this->authorize('update', $slide); $this->executor->execute( $action, $request->toUpdateSlideInput($slide), ); return to_route('bo.slides.edit', $slide) ->with('success', trans('crud.messages.has_been_updated', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); } public function destroy(Slide $slide, DeleteSlide $action): RedirectResponse { $this->authorize('delete', $slide); $this->executor->execute( $action, new DeleteSlideInput(slide: $slide), ); return to_route('bo.slides.index') ->with('warning', trans('crud.messages.has_been_deleted', [ 'model' => Str::ucfirst(trans_choice('models.classes.slides', 1)), ])); } }