'datetime', 'attempts' => 'integer', ]; } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function isExpired(): bool { return $this->expires_at->isPast(); } public function hasExceededMaxAttempts(): bool { return $this->attempts >= (int) config('auth.email_verification.max_attempts', 5); } }