JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrrequiredRoles = $roles; return $exception; } public static function forPermissions(array $permissions): self { $message = 'User does not have the right permissions.'; if (config('permission.display_permission_in_exception')) { $message .= ' Necessary permissions are '.implode(', ', $permissions); } $exception = new static(403, $message, null, []); $exception->requiredPermissions = $permissions; return $exception; } public static function forRolesOrPermissions(array $rolesOrPermissions): self { $message = 'User does not have any of the necessary access rights.'; if (config('permission.display_permission_in_exception') && config('permission.display_role_in_exception')) { $message .= ' Necessary roles or permissions are '.implode(', ', $rolesOrPermissions); } $exception = new static(403, $message, null, []); $exception->requiredPermissions = $rolesOrPermissions; return $exception; } public static function missingTraitHasRoles(Authorizable $user): self { $class = get_class($user); return new static(403, "Authorizable class `{$class}` must use Spatie\Permission\Traits\HasRoles trait.", null, []); } public static function notLoggedIn(): self { return new static(403, 'User is not logged in.', null, []); } public function getRequiredRoles(): array { return $this->requiredRoles; } public function getRequiredPermissions(): array { return $this->requiredPermissions; } }