src/Payum/Core/Action/ExecuteSameRequestWithModelDetailsAction.php
public function execute($request)
    {
        RequestNotSupportedException::assertSupports($this, $request);

        /** @var DetailsAggregateInterface $model */
        $model = $request->getModel();
        $details = $model->getDetails();

        if (is_array($details)) {
            $details = ArrayObject::ensureArrayObject($details);
        }

        $request->setModel($details);
        try {
            $this->gateway->execute($request);
        } finally {
            if ($model instanceof DetailsAwareInterface) {
                $model->setDetails($details);
            }
        }
    }
public function execute($request)
    {
        RequestNotSupportedException::assertSupports($this, $request);

        /** @var DetailsAggregateInterface $model */
        $model = $request->getModel();
        $details = $model->getDetails();

        if (is_array($details)) {
            $details = ArrayObject::ensureArrayObject($details);
        }

        $request->setModel($details);
        try {
            $this->gateway->execute($request);
        } finally {
            if ($model instanceof DetailsAwareInterface) {
                $model->setDetails($details);
            }
        }
    }
{@inheritDoc}

@param ModelAggregateInterface|ModelAwareInterface $request