'datetime', 'revoked_at' => 'datetime', 'created_at' => 'datetime', ]; public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class); } public function revoke(): bool { return $this->update(['revoked_at' => now()]); } public function isActive(): bool { return $this->revoked_at === null && $this->expires_at > now(); } public function scopeActive($query) { return $query->whereNull('revoked_at')->where('expires_at', '>', now()); } public function scopeForTenant($query, string $tenantId) { return $query->where('tenant_id', $tenantId); } }