bearerToken(); if (! $plainTextToken) { return $this->unauthorized(); } $accessToken = PersonalAccessToken::query() ->where('token', hash('sha256', $plainTextToken)) ->with('user') ->first(); if (! $accessToken || ! $accessToken->user) { return $this->unauthorized(); } $accessToken->forceFill(['last_used_at' => now()])->save(); $request->setUserResolver(fn () => $accessToken->user); $request->attributes->set('access_token', $accessToken); return $next($request); } private function unauthorized(): JsonResponse { return response()->json([ 'success' => false, 'message' => 'Unauthenticated.', ], 401); } }