user(); $newsClubModel = NewsClub::query() ->where('published', true) ->where('slug', $request->news_club_slug) ->firstOrFail(); $customerSurveyAnswers = $customerModel->surveyAnswers ->filter(function ($surveyAnswer) use ($newsClubModel) { return $surveyAnswer->newsClub->getKey() === $newsClubModel->getKey(); }); return view('club.pages.surveys.show', compact('newsClubModel', 'customerSurveyAnswers')); } /** * Store answers from a club customer. */ public function store(StoreSurveyAnswerRequest $request): RedirectResponse { return DB::transaction(function () use ($request) { /** @var \App\Models\Customer $customerModel */ $customerModel = auth('club')->user(); $newsClubModel = NewsClub::query() ->where('published', true) ->where('id', $request->validated()['news_club_id']) ->first(); $customerModel->surveyAnswers()->sync(collect($request->validated()['answers'])); return redirect()->route('club.news.show', $newsClubModel->slug) ->with('success', trans('Votre réponse à bien été enregistrée !')); }); } }