bearerToken(); if (!$token) { return response()->json(['error' => 'Unauthenticated'], 401); } $hashedToken = hash('sha256', $token); $accessToken = PersonalAccessToken::where('token', $hashedToken)->first(); if (!$accessToken) { return response()->json(['error' => 'Invalid token'], 401); } if ($accessToken->isExpired()) { return response()->json(['error' => 'Token expired'], 401); } // Set the authenticated user $request->setUserResolver(fn() => $accessToken->tokenable); // Mark token as used $accessToken->markAsUsed(); return $next($request); } }