'decimal:4', 'current_balance' => 'decimal:4', 'expires_at' => 'datetime', ]; public function casino() { return $this->belongsTo(OperatorCasino::class, 'operator_casino_id'); } public function isExpired(): bool { return $this->expires_at->isPast() || $this->status !== 'active'; } /** * Mark expired session if its expiry timestamp has passed. * Returns true if the status was just changed. */ public function expireIfNeeded(): bool { if ($this->status === 'active' && $this->expires_at->isPast()) { $this->update(['status' => 'expired']); return true; } return false; } }