middleware(['auth', 'verified', 'onboarding', 'role:organizer']); } /** * Store a newly created resource in storage. * * @return \Illuminate\Http\RedirectResponse */ public function store(Request $request) { $hasFinishedOfferForTheArtist = Offer::join('events', 'events.id', '=', 'offers.event_id') ->join('organizers', 'organizers.user_id', '=', 'events.organizer_id') ->where('organizers.user_id', '=', Auth::id()) ->where('offers.artist_id', '=', $request->artist_id) ->where('offers.status', '=', OfferStatus::COMPLETED->value) ->exists(); if ($hasFinishedOfferForTheArtist) { $review = new Review(); $review->content = $request->comment; $review->rating = $request->rating; $organizer = Organizer::find(Auth::id()); $review->organizer()->associate($organizer); $artist = Artist::find($request->artist_id); $review->artist()->associate($artist); $review->save(); return redirect()->back(); } else { return redirect()->back() ->with('warning', 'You can not post a review for this artist!'); } } }