get(); foreach ($groups as $group) { $originalTransferFees = (float)Transaction::where('type', TransactionType::TRANSFER_FEE)->whereIn('owner_id', $group->transactions->pluck('id'))->sum('service_charge'); $correctOriginalAmount = $group->transactions()->sum('original_amount'); $correctOriginalAmount += $originalTransferFees; $correctAmount = $group->transactions()->sum('amount'); $transferFees = $originalTransferFees / $group->currency_rate; $correctAmount += $transferFees; if ($group->original_amount != $correctOriginalAmount) { $group->original_amount = $correctOriginalAmount; $group->amount = $correctAmount; $group->save(); } } } }