public function next()
    {
        ++$this->sumKey;
        $nested = $this->getNested();

        foreach ($nested as $variation) {
            if (!$variation->valid()) {
                continue;
            }
            $variation->next();

            if (!$variation->valid()) {
                continue;
            }
            $this->reset();

            return;
        }
        $this->pushForward();

        if (!$this->isValid()) {
            return;
        }
        $this->reset(false);
    }
public function next()
    {
        ++$this->sumKey;
        $nested = $this->getNested();

        foreach ($nested as $variation) {
            if (!$variation->valid()) {
                continue;
            }
            $variation->next();

            if (!$variation->valid()) {
                continue;
            }
            $this->reset();

            return;
        }
        $this->pushForward();

        if (!$this->isValid()) {
            return;
        }
        $this->reset(false);
    }
{@inheritdoc}