attributes->set('_timing_start', microtime(true)); return $next($request); } public function terminate(Request $request, Response $response): void { if (! app()->environment('local')) { return; } $start = $request->attributes->get('_timing_start'); if (! is_float($start)) { return; } $duration = microtime(true) - $start; Log::debug('request_timing', [ 'path' => $request->path(), 'method' => $request->method(), 'status' => $response->getStatusCode(), 'duration_ms' => round($duration * 1000, 2), ]); } }