belongsTo(TrRegistrasi::class, 'IdRegistrasi', 'IdRegistrasi'); } // Mendapatkan detail transaksi untuk billing ini public function getTransaksiDetails() { return $this->registrasi->transaksi; } // Menghitung total biaya dari semua transaksi public function calculateTotalBiaya() { $total = 0; foreach ($this->getTransaksiDetails() as $transaksi) { $total += $transaksi->tindakan->TarifTindakan * $transaksi->JmlTindakan; } return $total; } // Mengupdate sisa pembayaran public function updateSisa() { $this->Sisa = $this->TotalBiaya - $this->Dibayar; $this->StatusPembayaran = ($this->Sisa <= 0) ? 'Lunas' : 'Belum Lunas'; $this->save(); } }