$health->run(), 'latestRun' => HealthRun::latest('ran_at')->first(), 'backups' => Backup::latest()->limit(10)->get(), 'failedJobs' => DB::getSchemaBuilder()->hasTable('failed_jobs') ? DB::table('failed_jobs')->count() : 0, 'queueConnection' => config('queue.default'), 'cacheStore' => config('cache.default'), 'schedulerConfigured' => file_exists(base_path('routes/console.php')), 'phpVersion' => PHP_VERSION, 'laravelVersion' => app()->version(), ]); } public function runHealth(SystemHealthService $service): RedirectResponse { $result = $service->run(); HealthRun::create(['user_id' => auth()->id(), 'status' => $result['status'], 'results' => $result, 'ran_at' => now()]); return back()->with('status', 'Health checks completed.'); } public function clearCache(): RedirectResponse { Artisan::call('optimize:clear'); Cache::flush(); return back()->with('status', 'Application and cache stores cleared.'); } public function runScheduler(): RedirectResponse { Artisan::call('schedule:run'); return back()->with('status', trim(Artisan::output()) ?: 'Scheduler executed.'); } public function retryFailedJobs(): RedirectResponse { Artisan::call('queue:retry', ['id' => 'all']); return back()->with('status', trim(Artisan::output()) ?: 'Failed jobs queued for retry.'); } public function createBackup(BackupService $service): RedirectResponse { try { $service->create(auth()->id()); return back()->with('status', 'Backup created.'); } catch (Throwable $e) { report($e); return back()->withErrors(['backup' => $e->getMessage()]); } } public function deleteBackup(Backup $backup, BackupService $service): RedirectResponse { $service->delete($backup); return back()->with('status', 'Backup deleted.'); } }