transactionToPerfexCRMProcessor = $transactionToPerfexCRMProcessor; $this->transactionToVoucherifyProcessor = $transactionToVoucherifyProcessor; } /** * @param Transaction $model * @param int $status * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Transaction $model, int $status) { $transaction = clone($model); $model->status = $status; $result = $this->handler($model); if(config('perfexcrm.is_enabled') == 'true'){ $this->transactionToPerfexCRMProcessor->execute($transaction, $status); } if($status == ApprovalStatus::APPROVED && ($transaction->type == TransactionType::PAYMENT || $transaction->type == TransactionType::TOP_UP)){ $this->transactionToVoucherifyProcessor->execute($transaction, "PAID"); } return $result; } }