'date', 'maturity_date' => 'date', 'principal_amount' => 'float', 'interest_rate' => 'float', 'paid_principal' => 'float', ]; public function payments(): HasMany { return $this->hasMany(AccountingBankLoanPayment::class, 'bank_loan_id'); } public function remainingPrincipal(): float { return max(0, (float) $this->principal_amount - (float) $this->paid_principal); } }