Поскольку вы используете метод экземпляра для создания учетных данных шлюза.
Попробуйте изменить это (это метод класса):
$result = Braintree_Transaction::sale([ 'amount' => $amount,'paymentMethodNonce' => $paymentMethodNonce, 'options' => ['submitForSettlement' => True]]);
на это(который является методом экземпляра):
$result = $gateway->transacation()->sale([
'amount' => $amount,'paymentMethodNonce' => $paymentMethodNonce, 'options' => ['submitForSettlement' => True]]);
Согласно документации Braintree, вы не можете смешивать методы класса с методами экземпляра.Вы должны использовать один или другой.Они поощряют метод экземпляра.
Посмотрите эту ссылку, она даст вам более подробную информацию: https://developers.braintreepayments.com/start/hello-server/php