/**
  * Processes successful authorize/clone result
  *
  * @param \Magento\Framework\DataObject $payment
  * @param \Braintree_Result_Successful $result
  * @param string $amount
  * @return \Magento\Framework\DataObject
  */
 protected function processSuccessResult(\Magento\Framework\DataObject $payment, \Braintree_Result_Successful $result, $amount)
 {
     /** @var \Magento\Sales\Model\Order\Payment $payment */
     $payment->setStatus(self::STATUS_APPROVED)->setCcTransId($result->transaction->id)->setLastTransId($result->transaction->id)->setTransactionId($result->transaction->id)->setIsTransactionClosed(false)->setCcLast4($result->transaction->creditCardDetails->last4)->setAdditionalInformation($this->getExtraTransactionInformation($result->transaction))->setAmount($amount)->setShouldCloseParentTransaction(false);
     if ($this->isFinalCapture($payment->getParentId(), $amount)) {
         $payment->setShouldCloseParentTransaction(true);
     }
     if (isset($result->transaction->creditCard['token']) && $result->transaction->creditCard['token']) {
         $payment->setTransactionAdditionalInfo('token', $result->transaction->creditCard['token']);
     }
     return $payment;
 }