'datetime', 'last_checked_at' => 'datetime', 'is_active' => 'boolean', ]; public function site(): BelongsTo { return $this->belongsTo(Site::class); } /** * Check if domain is expiring soon (within 30 days) */ public function isExpiringSoon(): bool { if (!$this->expires_at) { return false; } return $this->expires_at->lte(Carbon::now()->addDays(30)); } /** * Check if domain has expired */ public function isExpired(): bool { if (!$this->expires_at) { return false; } return $this->expires_at->lte(Carbon::now()); } /** * Get days until expiration */ public function daysUntilExpiration(): ?int { if (!$this->expires_at) { return null; } return Carbon::now()->diffInDays($this->expires_at, false); } }