authorize('viewAny', Faq::class); $pagination = RequestHelper::pagination($request); $faqs = $this->executor->execute( $query, new GetPaginatedFaqsQueryInput( pagination: $pagination, ) ); return view('bo.faqs.index', compact('faqs')); } public function create(): View { $this->authorize('create', Faq::class); return view('bo.faqs.create'); } public function store(StoreFaqRequest $request, CreateFaq $action): RedirectResponse { $this->authorize('create', Faq::class); $faq = $this->executor->execute( $action, $request->toCreateFaqInput(), ); return to_route('bo.faqs.edit', $faq) ->with('success', trans('crud.messages.has_been_created', [ 'model' => Str::ucfirst(trans_choice('models.classes.faqs', 1)), ])); } public function edit(Faq $faq): View { $this->authorize('update', $faq); return view('bo.faqs.edit', compact('faq')); } public function update(UpdateFaqRequest $request, Faq $faq, UpdateFaq $action): RedirectResponse { $this->authorize('update', $faq); $this->executor->execute( $action, $request->toUpdateFaqInput($faq), ); return to_route('bo.faqs.edit', $faq) ->with('success', trans('crud.messages.has_been_updated', [ 'model' => Str::ucfirst(trans_choice('models.classes.faqs', 1)), ])); } public function destroy(Faq $faq, DeleteFaq $action): RedirectResponse { $this->authorize('delete', $faq); $this->executor->execute($action, new DeleteFaqInput(faq: $faq)); return to_route('bo.faqs.index') ->with('warning', trans('crud.messages.has_been_deleted', [ 'model' => Str::ucfirst(trans_choice('models.classes.faqs', \INF)), ])); } }