'decimal:2', 'unit_price' => 'integer', 'subtotal' => 'decimal:2', ]; } public function getActivitylogOptions(): LogOptions { return LogOptions::defaults() ->logAll() ->logOnlyDirty() ->dontLogEmptyChanges(); } protected function formattedSubtotal(): Attribute { return Attribute::make( get: fn () => 'Rp '.number_format($this->subtotal, 0, ',', '.'), ); } protected function formattedUnitPrice(): Attribute { return Attribute::make( get: fn () => 'Rp '.number_format($this->unit_price, 0, ',', '.'), ); } public function purchase(): BelongsTo { return $this->belongsTo(Purchase::class); } public function rawMaterialPrice(): BelongsTo { return $this->belongsTo(RawMaterialPrice::class)->withTrashed(); } public function user(): BelongsTo { return $this->belongsTo(User::class); } }