'services.paypal.api_key', ]; public function __construct(Repository $config) { $this->config = $config; foreach ($this->getStorageToConfigMap() as $configKey) { $this->originalConfig[$configKey] = $this->config[$configKey]; } } public function bootstrap(TenantManager $tenantManager): void { $tenantManager->eventListener('bootstrapped', function (TenantManager $manager) { $this->setTenantConfig($manager->getTenant()); }); $tenantManager->eventListener('ended', function () { $this->unsetTenantConfig(); }); } public function setTenantConfig(Tenant $tenant): void { foreach ($this->getStorageToConfigMap() as $storageKey => $configKey) { $override = $tenant->data[$storageKey] ?? null; if (! is_null($override)) { $this->config[$configKey] = $override; } } } public function unsetTenantConfig(): void { foreach ($this->getStorageToConfigMap() as $configKey) { $this->config[$configKey] = $this->originalConfig[$configKey]; } } public function getStorageToConfigMap(): array { return static::$storageToConfigMap; } }