route('token') ?? $request->header('X-Device-Token') ?? $request->ip(); return Limit::perMinute(30)->by((string) $key); }); RateLimiter::for('qr-scan', fn (Request $request) => Limit::perMinute(20)->by($request->ip())); RateLimiter::for('device-heartbeat', function (Request $request) { return Limit::perMinute(60)->by((string) ($request->header('X-Device-Token') ?? $request->ip())); }); } }