public function home() { $q = Annoucement::with('role')->where(function ($query) { $query->where('start_date', '<=', date('Y-m-d'))->where('end_date', '>=', date('Y-m-d')); }); if (!Auth::check()) { $q->where('for_all', '=', 1); } else { foreach (Auth::user()->roles as $role) { $role_id = $role->id; } $q->where(function ($query) use($role_id) { $query->where('for_all', '=', 1)->orWhere(function ($query1) use($role_id) { $query1->whereHas('role', function ($query2) use($role_id) { $query2->where('role_id', '=', $role_id); }); }); }); } $annoucements = $q->get(); $assets = ['hide_sidebar']; return view('home', compact('assets', 'annoucements')); }