authorize('viewAny', Faq::class); $faqs = $query->execute(); 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, new CreateFaqInput( question: $request->string('question')->value(), answer: $request->string('answer')->value(), ), ); 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, new UpdateFaqInput( faq: $faq, question: $request->string('question')->value(), answer: $request->string('answer')->value(), ), ); 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)), ])); } }