where('status', TourStatus::ENABLE) ->with('file') ->applySort() ->paginate() ->withQueryString(); return view('tours.index', compact('tours')); } public function show(Tour $tour) { abort_if($tour->status !== TourStatus::ENABLE, 404); $viewedTours = session()->get('viewed_tours', []); if (!in_array($tour->id, $viewedTours)) { $tour->increment('views'); $viewedTours[] = $tour->id; session()->put('viewed_tours', $viewedTours); } $tour->load([ 'file', 'tourDates', 'comments' => function ($query) { $query->where('status', CommentStatus::APPROVED) ->with('user') ->orderByDesc('created_at'); }, ]); return view('tours.show', compact('tour')); } }