json(Setting::allKeyValue()); } public function update(Request $request) { // Batch: {"settings": {"invoice_number_start": 2, "foo": "bar"}} if ($request->has('settings') && is_array($request->input('settings'))) { foreach ($request->input('settings') as $k => $v) { Setting::updateOrCreate(['key' => $k], ['value' => is_scalar($v) ? (string)$v : json_encode($v)]); } return response()->json(Setting::allKeyValue()); } // Single: {"key":"invoice_number_start","value":2} $validated = $request->validate([ 'key' => 'required|string', 'value' => 'nullable', ]); Setting::updateOrCreate(['key' => $validated['key']], ['value' => isset($validated['value']) && !is_scalar($validated['value']) ? json_encode($validated['value']) : (string)($validated['value'] ?? null)]); return response()->json(Setting::allKeyValue()); } }