value * @param string $group * @return void */ public function updateSettings(array $settings, string $group = 'general'): void { foreach ($settings as $key => $value) { Setting::set($key, $value, $group); Cache::forget("setting.{$key}"); } // Clear dependent caches if languages change if (isset($settings['supported_languages'])) { Cache::forget('supported_languages'); } } /** * Get supported languages from settings. * * @return array */ public function getSupportedLanguages(): array { return Cache::rememberForever('supported_languages', function () { return Setting::get('supported_languages', [ ['name' => 'English', 'abbreviation' => 'en'] ]); }); } /** * Get supported language abbreviations. * * @return array */ public function getSupportedLocales(): array { $languages = $this->getSupportedLanguages(); return array_column($languages, 'abbreviation'); } }