ServiceStatus::class, 'category' => ServiceCategory::class, 'type' => ServiceType::class, 'credentials' => 'encrypted:array', ]; } public function folderName(): Attribute { return new Attribute( get: fn() => $this->name . '-' . $this->id, ); } public function server(): BelongsTo { return $this->belongsTo(Server::class); } public function deployments(): MorphMany { return $this->morphMany(Deployment::class, 'target'); } public function driver(): Driver { $class = config("keystone.drivers.{$this->driver_name}"); if (! class_exists($class)) { throw new \Exception("Driver class {$class} not found"); } $driver = new $class( containerName: $this->container_name, containerId: $this->container_id, service: $this, ); if ($driver instanceof DatabaseDriver) { $driver->credentials = $this->credentials; } return $driver; } }