/**
  * Compose the view.
  *
  * @param  \Illuminate\Contracts\View\View  $view
  */
 public function composeFilters(View $view)
 {
     $filters = collect();
     // Permission groups
     //----------------------------------
     $groups = $this->cacheResults('permissions-groups.filters', function () {
         return PermissionsGroup::has('permissions')->get();
     });
     foreach ($groups as $group) {
         /** @var  \Arcanesoft\Auth\Models\PermissionsGroup  $group */
         $filters->put($group->slug, link_to_route('auth::foundation.permissions.group', $group->name, [$group->hashed_id]));
     }
     // Custom Permission group
     //----------------------------------
     if (Permission::where('group_id', 0)->count()) {
         $filters->put('custom', link_to_route('auth::foundation.permissions.group', 'Custom', [hasher()->encode(0)]));
     }
     $view->with('groupFilters', $filters->toArray());
     // TODO: return a collection instead of simple array
 }
 /**
  * Eloquent 'deleting' event method.
  *
  * @param  \Arcanedev\LaravelAuth\Models\PermissionsGroup|PermissionsGroup  $group
  */
 public function deleting(PermissionsGroup $group)
 {
     $group->detachAllPermissions(false);
     $this->event->fire('auth.permission-groups.deleting', compact('group'));
 }