false, 'redis' => false, 'cache' => false]; try { DB::connection()->getPdo(); $checks['db'] = true; } catch (\Throwable) {} try { Redis::ping(); $checks['redis'] = true; } catch (\Throwable) {} try { cache()->put('health_check', 'ok', 5); $checks['cache'] = cache()->get('health_check') === 'ok'; } catch (\Throwable) {} $healthy = $checks['db'] && $checks['redis'] && $checks['cache']; return response()->json([ 'status' => $healthy ? 'ok' : 'degraded', 'timestamp' => now()->toIso8601String(), 'checks' => $checks, ], $healthy ? 200 : 503); }); Route::get('/', function () { return view('welcome'); });