find($key); if (! $setting || $setting->value === null) { return $default; } $decoded = json_decode($setting->value, true); return (json_last_error() === JSON_ERROR_NONE) ? $decoded : $setting->value; } public static function set(string $key, mixed $value): static { $encoded = is_array($value) || is_object($value) ? json_encode($value) : (string) $value; return static::query()->updateOrCreate( ['key' => $key], ['value' => $encoded] ); } public static function forget(string $key): bool { return (bool) static::query()->where('key', $key)->delete(); } }