credit = $credit; $this->payment = $payment; $this->amount = $amount; } /** * Execute the job. * * * @return void */ public function handle() { /* Update Pivot Record amount */ $this->payment->credits->each(function ($cred) { if ($cred->id == $this->credit->id) { $cred->pivot->amount = $this->amount; $cred->pivot->save(); $cred->paid_to_date += $this->amount; $cred->save(); } }); $credit_balance = $this->credit->balance; if ($this->amount == $credit_balance) { //total credit applied. $this->credit ->service() ->setStatus(Credit::STATUS_APPLIED) ->adjustBalance($this->amount * -1) ->updatePaidToDate($this->amount) ->save(); } elseif ($this->amount < $credit_balance) { //compare number appropriately $this->credit ->service() ->setStatus(Credit::STATUS_PARTIAL) ->adjustBalance($this->amount * -1) ->updatePaidToDate($this->amount) ->save(); } /* Update Payment Applied Amount*/ $this->payment->save(); } }