*/ use HasFactory, HasUuid; protected $fillable = [ 'customer_id', 'plan', 'amount_cents', 'currency', 'datacenter', 'stripe_event_id', 'status', ]; protected function casts(): array { return ['amount_cents' => 'integer']; } public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } public function instance(): HasOne { return $this->hasOne(Instance::class); } public function runs(): MorphMany { return $this->morphMany(ProvisioningRun::class, 'subject'); } /** Runner hook: a failed provisioning run marks the order failed (no auto-refund). */ public function onProvisioningFailed(): void { $this->update(['status' => 'failed']); } }