user()->tokenCan('root')) { return $next($request); } return parent::handle($request, $next, ...$abilities); } catch (AuthenticationException $e) { auditLog('api.auth.unauthenticated', [ 'reason' => $e->getMessage(), 'required_abilities' => $abilities, ], 'warning'); return response()->json([ 'message' => 'Unauthenticated.', ], 401); } catch (\Exception $e) { auditLog('api.auth.ability_denied', [ 'required_abilities' => $abilities, 'token_id' => $request->user()?->currentAccessToken()?->id, 'reason' => $e->getMessage(), ], 'warning'); return response()->json([ 'message' => 'Missing required permissions: '.implode(', ', $abilities), ], 403); } } }