settings[$key] = compact('attributeName', 'callback', 'default'); return $this; } public function extend(Container $container, Extension $extension = null) { if (! empty($this->settings)) { AbstractSerializer::addAttributeMutator( ForumSerializer::class, function () use ($container) { $settings = $container->make(SettingsRepositoryInterface::class); $attributes = []; foreach ($this->settings as $key => $setting) { $value = $settings->get($key, $setting['default']); if (isset($setting['callback'])) { $callback = ContainerUtil::wrapCallback($setting['callback'], $container); $value = $callback($value); } $attributes[$setting['attributeName']] = $value; } return $attributes; } ); } } }