ip(); } if (config('access_log.log_referer')) { $props['referer'] = $request->header('Referer'); } if (config('access_log.log_user_agent')) { $props['user_agent'] = $request->userAgent(); } return empty($props) ? null : $props; } protected function shouldLog(Request $request): bool { $logUnauth = config('access_log.log_unauthenticated'); $shouldLogAuth = $logUnauth ? true : $request->user() !== null; return config('access_log.enabled') && $shouldLogAuth; } protected function createLog(Request $request, Response $response): void { $model = config('access_log.model'); $log = new $model([ 'path' => $request->path(), 'status' => $response->status(), 'properties' => $this->properties($request, $response), ]); $log->user()->associate($request->user()); $log->save(); } public function handle(Request $request, Closure $next): Response { $response = $next($request); if ($this->shouldLog($request)) { $this->createLog($request, $response); } return $response; } }