'integer', 'remaining_days' => 'integer', 'proration_ratio' => 'decimal:4', 'old_cycle_price' => 'decimal:2', 'new_cycle_price' => 'decimal:2', 'charge_amount' => 'decimal:2', 'credit_amount' => 'decimal:2', 'net_amount' => 'decimal:2', 'applied_at' => 'datetime', 'metadata' => 'array', ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function account(): BelongsTo { return $this->belongsTo(HostingAccount::class, 'hosting_account_id'); } public function fromProduct(): BelongsTo { return $this->belongsTo(HostingProduct::class, 'from_hosting_product_id'); } public function toProduct(): BelongsTo { return $this->belongsTo(HostingProduct::class, 'to_hosting_product_id'); } public function invoice(): HasOne { return $this->hasOne(HostingBillingInvoice::class); } }