updatesWalletBalance = $updatesWalletBalance; } /** * @param Wallet $model * @param $amount * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Wallet $wallet) { $i = 0; $topups = 0; $credit = 0; $payments = 0; $debit = 0; foreach ($wallet->transactions as $transaction) { if (!in_array((int) $transaction->status, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])) continue; if ((int) $transaction->type === TransactionType::TOP_UP) { $topups += (float) $transaction->amount; } if ((int) $transaction->type === TransactionType::CREDIT_NOTE) $credit += (float) $transaction->amount; if ((int) $transaction->type === TransactionType::PAYMENT) $payments += (float) $transaction->amount; if ((int) $transaction->type === TransactionType::DEBIT_NOTE) $debit += (float) $transaction->amount; } $auditBalance = ($topups + $credit) - ($payments + $debit); return $auditBalance; } }