'datetime','revoked_at'=>'datetime','activation_limit'=>'integer','max_major_version'=>'integer']; public function product(): BelongsTo { return $this->belongsTo(LicenseProduct::class, 'license_product_id'); } public function activations(): HasMany { return $this->hasMany(LicenseActivation::class); } public function getIsUsableAttribute(): bool { return $this->revoked_at === null && ($this->expires_at === null || $this->expires_at->isFuture()); } }