'datetime', 'ns_expected' => 'array', 'ns_observed' => 'array', 'ns_checked_at' => 'datetime', 'connected_at' => 'datetime', 'mail_ready_at' => 'datetime', 'active_at' => 'datetime', 'manual_dns_verified_at' => 'datetime', 'verification_meta' => 'array', 'ssl_provisioned_at' => 'datetime', 'ssl_expires_at' => 'datetime', ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function website(): BelongsTo { return $this->belongsTo(Website::class); } public function hostingAccount(): BelongsTo { return $this->belongsTo(HostingAccount::class); } public function emailDomain(): BelongsTo { return $this->belongsTo(EmailDomain::class); } public function emailServer(): BelongsTo { return $this->belongsTo(EmailServer::class); } public function dnsRecords(): HasMany { return $this->hasMany(DomainDnsRecord::class); } public function dkimKeys(): HasMany { return $this->hasMany(DomainDkimKey::class); } public function nsChecks(): HasMany { return $this->hasMany(DomainNsCheck::class); } public function mailboxes(): HasMany { return $this->hasMany(Mailbox::class); } public function hostedSites(): HasMany { return $this->hasMany(HostedSite::class); } public function isActiveForMail(): bool { return (string) $this->status === 'verified' && (string) $this->onboarding_state === self::STATE_ACTIVE; } }