manager = $tenantManager; } public static function new(): self { return app(static::class); } public static function fromStorage(array $data): self { return app(static::class)->withData($data)->persisted(); } public function persisted() { $this->persisted = true; return $this; } public function withDomains($domains): self { $domains = (array) $domains; $this->domains = $domains; return $this; } public function withData($data): self { $this->data = $data; return $this; } public function save(): self { if ($this->persisted) { $this->manager->addTenant($this); } else { $this->manager->updateTenant($this); } return $this; } public function getDatabaseName() { return $this['_tenancy_database'] ?? $this->app['config']['tenancy.database.prefix'] . $this->uuid . $this->app['config']['tenancy.database.suffix']; } public function __get($name) { return $this->data[$name] ?? null; } }