Refund action not called when click refund button in administration

Refund action not called when click refund button in administration.

Steps to reproduce
I register the refund action in PaymentGatewayFactory.php like below:

    // PaymentGatewayFactory.php

    protected function populateConfig(ArrayObject $config)
    {
        $config->defaults([
            .....,
            'payum.action.refund' => new RefundAction(),
            ......
        ]);
    }
   // RefundAction.php

   class RefundAction extends DirectApiAwareAction implements ActionInterface, ApiAwareInterface, GatewayAwareInterface
   {

          public function execute($request)
          {
               RequestNotSupportedException::assertSupports($this, $request);

               $details = ArrayObject::ensureArrayObject($request->getModel());
          }

          public function supports($request)
          {
               dd('refund');
               return
                      $request instanceof Refund &&
                      $request->getModel() instanceof \ArrayAccess
               ;
          }
  }

may be i doing it wrong?