+ if (isset($this->permissions)) {
+ return $this->permissions;
+ }
+
+ $this->permissions = $this->newQuery()->getConnection()->table('role_user', 'ru')
+ ->select('role_permissions.name as name')->distinct()
+ ->leftJoin('permission_role', 'ru.role_id', '=', 'permission_role.role_id')
+ ->leftJoin('role_permissions', 'permission_role.permission_id', '=', 'role_permissions.id')
+ ->where('ru.user_id', '=', $this->id)
+ ->pluck('name');
+
+ return $this->permissions;
+ }
+
+ /**
+ * Clear any cached permissions on this instance.
+ */
+ public function clearPermissionCache()
+ {
+ $this->permissions = null;