/** * return all available role for this user * * @param User $user * @return array */ public function getRolesFor(User $user) { $userRoles = $user->roles()->get(); $roles = Role::where('order', '<=', $this->maxRole()->order); foreach ($userRoles as $role) { $roles = $roles->where('name', '!=', $role->name); } return $roles->get(); }