'integer', 'tax_cents' => 'integer', 'gross_cents' => 'integer', 'tax_rate' => 'decimal:2', 'reverse_charge' => 'boolean', 'plan_version' => 'integer', 'snapshot_version' => 'integer', 'snapshot' => 'array', 'occurred_at' => 'datetime', ]; } public function uniqueIds(): array { return ['uuid']; } /** * The model events above only fire for instance operations. A bulk * `query()->update()` or `->delete()` would sail straight past them, so the * builder refuses those too. */ public function newEloquentBuilder($query): AppendOnlyBuilder { return new AppendOnlyBuilder($query); } public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } public function subscription(): BelongsTo { return $this->belongsTo(Subscription::class); } public function order(): BelongsTo { return $this->belongsTo(Order::class); } public function planVersion(): BelongsTo { return $this->belongsTo(PlanVersion::class, 'plan_version_id'); } }