public function register()
    {
        // merge configs
        $this->mergeConfigFrom(
            __DIR__ . '/config.php', 'ibrand.setting'
        );

        $this->app->singleton(SettingInterface::class, function ($app) {
            $repository = new EloquentSetting(new SystemSetting());

            if (!config('ibrand.setting.cache')) {
                return $repository;
            }

            return new CacheDecorator($repository);
        });

        $this->app->alias(SettingInterface::class, 'system_setting');
    }