user()->notification_preferences ?? [ 'uptime' => ['mail'], 'ssl' => ['mail'], 'broken_links' => ['mail'] ]; $slackWebhook = env('SLACK_WEBHOOK_URL', ''); return view('settings', compact('preferences', 'slackWebhook')); } public function updateNotifications(Request $request) { $request->validate([ 'uptime' => 'nullable|array', 'uptime.*' => 'in:mail,slack', 'ssl' => 'nullable|array', 'ssl.*' => 'in:mail,slack', 'broken_links' => 'nullable|array', 'broken_links.*' => 'in:mail,slack', ]); $preferences = [ 'uptime' => $request->input('uptime', []), 'ssl' => $request->input('ssl', []), 'broken_links' => $request->input('broken_links', []), ]; auth()->user()->update([ 'notification_preferences' => $preferences ]); return redirect()->route('settings') ->with('success', 'Notification preferences updated successfully.'); } public function updateSlack(Request $request) { $request->validate([ 'slack_webhook' => 'nullable|url' ]); // Note: In a production app, you would store this in the user's settings or env // For now, we'll just return a message return redirect()->route('settings') ->with('success', 'Slack webhook URL saved. Please add it to your .env file as SLACK_WEBHOOK_URL.'); } }