/** * @param Payload $payload * @return Result */ public function process($payload) { $action = $payload->getData('action', 'payRequest'); $this->gateway = $payload->getGateway(); $this->method = $payload->getMethod(); return $this->{$action}($payload->getData('data')); }