private function _verifyGatewayResponse($response) { if (isset($response['transaction'])) { // return a populated instance of Transaction return new Result\Successful(Transaction::factory($response['transaction'])); } else { if (isset($response['apiErrorResponse'])) { return new Result\Error($response['apiErrorResponse']); } else { throw new Exception\Unexpected("Expected transaction or apiErrorResponse"); } } }