'datetime', 'expires_at' => 'datetime', 'additional_details' => 'array', ]; public function user() { return $this->belongsTo(User::class, 'user_id'); } public function plan() { return $this->belongsTo(SubscriptionPlan::class, 'plan_id'); } public function invoices() { return $this->hasMany(SubscriptionInvoice::class, 'subscription_id'); } public function isActive(): bool { return $this->status === 'active' && $this->expires_at && $this->expires_at->isFuture(); } }