first(); if (!$setting) { return $default; } return match($setting->type) { 'boolean' => filter_var($setting->value, FILTER_VALIDATE_BOOLEAN), 'integer' => (int) $setting->value, 'json' => json_decode($setting->value, true), default => $setting->value, }; } /** * Set a setting value. */ public static function set(string $key, $value, string $type = 'string') { if (is_array($value)) { $value = json_encode($value); $type = 'json'; } elseif (is_bool($value)) { $value = $value ? '1' : '0'; $type = 'boolean'; } return self::updateOrCreate( ['key' => $key], ['value' => $value, 'type' => $type] ); } }