(int) ($this->resource['id'] ?? 0), 'parent_id' => (int) ($this->resource['parent_id'] ?? 0), 'invoice_number' => $this->resource['invoice_number'] ?? null, 'total_amount' => (float) ($this->resource['total_amount'] ?? 0), 'paid_amount' => (float) ($this->resource['paid_amount'] ?? 0), 'discount' => (float) ($this->resource['discount'] ?? 0), 'balance' => (float) ($this->resource['balance'] ?? 0), 'status' => $this->resource['status'] ?? null, 'school_year' => $this->resource['school_year'] ?? null, 'semester' => $this->resource['semester'] ?? null, 'issue_date' => $this->resource['issue_date'] ?? null, 'due_date' => $this->resource['due_date'] ?? null, 'created_at' => $this->resource['created_at'] ?? null, 'updated_at' => $this->resource['updated_at'] ?? null, 'refund_amount' => (float) ($this->resource['refund_amount'] ?? 0), 'last_paid_amount' => (float) ($this->resource['last_paid_amount'] ?? 0), 'last_payment_date' => $this->resource['last_payment_date'] ?? null, 'payments' => collect($this->resource['payments'] ?? []) ->map(static fn ($payment) => [ 'id' => (int) ($payment['id'] ?? 0), 'invoice_id' => (int) ($payment['invoice_id'] ?? 0), 'paid_amount' => (float) ($payment['paid_amount'] ?? 0), 'balance' => (float) ($payment['balance'] ?? 0), 'payment_method' => $payment['payment_method'] ?? null, 'payment_date' => $payment['payment_date'] ?? null, 'transaction_id' => $payment['transaction_id'] ?? null, 'status' => $payment['status'] ?? null, ]) ->values() ->all(), ]; } }