public function continueRecipe(): callable
    {
        return function (array $with = [], string $nextStep = null): ChefInterface {
            /**
             * @var Chef $this
             */
            $this->updateMyWorkPlan($with);

            while (($callable = $this->getNextStep($nextStep)) instanceof BowlInterface) {
                try {
                    $callable->execute($this, $this->workPlan);
                } catch (\Throwable $error) {
                    $this->position = \count($this->steps) + 1;

                    $this->callErrors($error);
                }

                $nextStep = null;
            }

            return $this;
        };
    }