'datetime', 'expires_at' => 'datetime', ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function permission(): BelongsTo { return $this->belongsTo(Permission::class); } public function grantedBy(): BelongsTo { return $this->belongsTo(User::class, 'granted_by_id'); } public function isExpired(): bool { return $this->expires_at !== null && $this->expires_at->isPast(); } public function isActive(): bool { return ! $this->isExpired(); } }