validate([ 'q' => 'required' ]); $results = Ejaculation::query() ->whereHas('tags', function ($query) use ($inputs) { $query->where('name', 'like', "%{$inputs['q']}%"); }) ->whereHas('user', function ($query) { $query->where('is_protected', false); if (Auth::check()) { $query->orWhere('id', Auth::id()); } }) ->where('is_private', false) ->orderBy('ejaculated_date', 'desc') ->with(['user', 'tags']) ->withLikes() ->paginate(20) ->appends($inputs); return view('search.index')->with(compact('inputs', 'results')); } public function relatedTag(Request $request) { $inputs = $request->validate([ 'q' => 'required' ]); $results = Tag::query() ->where('name', 'like', "%{$inputs['q']}%") ->paginate(50) ->appends($inputs); return view('search.relatedTag')->with(compact('inputs', 'results')); } }