'App\Policies\ModelPolicy', CourseForum::class => CourseForumPolicy::class, CourseForumAnswer::class => CourseForumAnswerPolicy::class , Webinar::class => WebinarPolicy::class ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); $minutes = 60 * 60; // 1 hour $sections = Cache::remember('sections', $minutes, function () { return Section::all(); }); $scopes = []; foreach ($sections as $section) { $scopes[$section->name] = $section->caption; Gate::define($section->name, function ($user) use ($section) { return $user->hasPermission($section->name); }); } // } }