user(); $query = UserSetting::query()->where('user_id', $user->id); if ($request->filled('key')) { $query->where('key', $request->query('key')); } $settings = $query->get()->map(fn (UserSetting $setting) => [ 'id' => $setting->id, 'key' => $setting->key, 'value' => $setting->value, ]); return response()->json($settings); } public function store(Request $request): JsonResponse { $data = $request->validate([ 'key' => ['required', 'string', 'max:191'], 'value' => ['nullable', 'array'], ]); $setting = UserSetting::updateOrCreate( ['user_id' => $request->user()->id, 'key' => $data['key']], ['value' => $data['value'] ?? []] ); return response()->json([ 'id' => $setting->id, 'key' => $setting->key, 'value' => $setting->value, ]); } }