authorize('settings.view'); return SettingResource::collection(Setting::query()->orderBy('key')->get()); } public function show(Setting $setting): SettingResource { $this->authorize('settings.view'); return SettingResource::make($setting); } public function update(Request $request, Setting $setting): SettingResource { // Taking the site down is its own permission, in the panel as here. $this->authorize($setting->key === Maintenance::KEY ? 'settings.maintenance' : 'settings.update'); abort_if(in_array($setting->key, self::READ_ONLY, true), 403, __('rules.settings.read_only')); // `present` rather than `required`: null is a value a setting may hold. $request->validate(['value' => ['present']]); $setting->update(['value' => $request->input('value')]); return SettingResource::make($setting); } }