diff --git a/composer.json b/composer.json
index 471d32e..ea48fef 100644
--- a/composer.json
+++ b/composer.json
@@ -57,6 +57,7 @@
         "psalm/plugin-laravel": "^2.10",
         "psr-mock/http": "^1",
         "rector/rector": "^1",
+        "spatie/laravel-ray": "^1.40",
         "squizlabs/php_codesniffer": "^3",
         "symfony/cache": "^6 || ^7",
         "vimeo/psalm": "^5",
diff --git a/src/Bridges/SessionBridgeAbstract.php b/src/Bridges/SessionBridgeAbstract.php
index 0403f55..3121e81 100644
--- a/src/Bridges/SessionBridgeAbstract.php
+++ b/src/Bridges/SessionBridgeAbstract.php
@@ -5,6 +5,7 @@
 namespace Auth0\Laravel\Bridges;
 
 use Auth0\Laravel\Exceptions\SessionException;
+use Illuminate\Http\Request;
 use Illuminate\Session\Store;
 use InvalidArgumentException;
 
@@ -155,7 +156,13 @@ protected function getPayload(): ?array
      */
     protected function getStore(): Store
     {
+        /**
+         * @var Store $store
+         */
         $store = app('session.store');
+        /**
+         * @var Request $request
+         */
         $request = app('request');
 
         if (! $request->hasSession(true)) {
diff --git a/src/EventsContract.php b/src/EventsContract.php
index 5ad8b9c..8cc0c1d 100644
--- a/src/EventsContract.php
+++ b/src/EventsContract.php
@@ -34,67 +34,67 @@
 interface EventsContract
 {
     /**
-     * @var class-string<\Auth0\Laravel\Events\AuthenticationFailed>
+     * @var class-string<AuthenticationFailed>
      */
     public const AUTHENTICATION_FAILED = AuthenticationFailed::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\AuthenticationSucceeded>
+     * @var class-string<AuthenticationSucceeded>
      */
     public const AUTHENTICATION_SUCCEEDED = AuthenticationSucceeded::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\Configuration\BuildingConfigurationEvent>
+     * @var class-string<BuildingConfigurationEvent>
      */
     public const CONFIGURATION_BUILDING = BuildingConfigurationEvent::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\Configuration\BuiltConfigurationEvent>
+     * @var class-string<BuiltConfigurationEvent>
      */
     public const CONFIGURATION_BUILT = BuiltConfigurationEvent::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\LoginAttempting>
+     * @var class-string<LoginAttempting>
      */
     public const LOGIN_ATTEMPTING = LoginAttempting::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\Middleware\StatefulMiddlewareRequest>
+     * @var class-string<StatefulMiddlewareRequest>
      */
     public const MIDDLEWARE_STATEFUL_REQUEST = StatefulMiddlewareRequest::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\Middleware\StatelessMiddlewareRequest>
+     * @var class-string<StatelessMiddlewareRequest>
      */
     public const MIDDLEWARE_STATELESS_REQUEST = StatelessMiddlewareRequest::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\TokenExpired>
+     * @var class-string<TokenExpired>
      */
     public const TOKEN_EXPIRED = TokenExpired::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\TokenRefreshFailed>
+     * @var class-string<TokenRefreshFailed>
      */
     public const TOKEN_REFRESH_FAILED = TokenRefreshFailed::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\TokenRefreshSucceeded>
+     * @var class-string<TokenRefreshSucceeded>
      */
     public const TOKEN_REFRESH_SUCCEEDED = TokenRefreshSucceeded::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\TokenVerificationAttempting>
+     * @var class-string<TokenVerificationAttempting>
      */
     public const TOKEN_VERIFICATION_ATTEMPTING = TokenVerificationAttempting::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\TokenVerificationFailed>
+     * @var class-string<TokenVerificationFailed>
      */
     public const TOKEN_VERIFICATION_FAILED = TokenVerificationFailed::class;
 
     /**
-     * @var class-string<\Auth0\Laravel\Events\TokenVerificationSucceeded>
+     * @var class-string<TokenVerificationSucceeded>
      */
     public const TOKEN_VERIFICATION_SUCCEEDED = TokenVerificationSucceeded::class;
 
diff --git a/src/Guards/AuthorizationGuard.php b/src/Guards/AuthorizationGuard.php
index 0172038..73bb1f1 100644
--- a/src/Guards/AuthorizationGuard.php
+++ b/src/Guards/AuthorizationGuard.php
@@ -34,7 +34,12 @@ public function findToken(): ?CredentialEntityContract
             return $this->getImposter();
         }
 
-        $token = trim(app('request')->bearerToken() ?? '');
+        /**
+         * @var \Illuminate\Http\Request $request
+         */
+        $request = app('request');
+
+        $token = trim($request->bearerToken() ?? '');
 
         if ('' === $token) {
             return null;
diff --git a/src/Guards/GuardAbstract.php b/src/Guards/GuardAbstract.php
index 175c149..9b125ea 100644
--- a/src/Guards/GuardAbstract.php
+++ b/src/Guards/GuardAbstract.php
@@ -92,7 +92,12 @@ final public function getProvider(): UserProvider
         }
 
         $providerName = trim($providerName);
-        $provider = app('auth')->createUserProvider($providerName);
+
+        /**
+         * @var \Illuminate\Auth\AuthManager $auth
+         */
+        $auth = app('auth');
+        $provider = $auth->createUserProvider($providerName);
 
         if ($provider instanceof UserProvider) {
             $this->provider = $provider;
@@ -115,7 +120,13 @@ final public function getRefreshedUser(): ?Authenticatable
     final public function getSession(): Session
     {
         if (! $this->session instanceof Session) {
+            /**
+             * @var \Illuminate\Session\Store $store
+             */
             $store = app('session.store');
+            /**
+             * @var \Illuminate\Http\Request $request
+             */
             $request = app('request');
 
             if (! $request->hasSession(true)) {
diff --git a/src/UserProviderAbstract.php b/src/UserProviderAbstract.php
index 2d6f223..8ef5d99 100644
--- a/src/UserProviderAbstract.php
+++ b/src/UserProviderAbstract.php
@@ -222,7 +222,12 @@ protected function resolveRepository(
 
         $this->setRepositoryName($model);
 
-        return $this->repository = app($model);
+        /**
+         * @var UserRepositoryContract $repository
+         */
+        $repository = app($model);
+
+        return $this->repository = $repository;
     }
 
     protected function setConfiguration(