public function setsArgument($indexOrValue = null, $value = null): self
    {
        if (func_num_args() > 1) {
            $index = $indexOrValue;
        } else {
            $index = 0;
            $value = $indexOrValue;
        }

        if ($value instanceof InstanceHandle) {
            $value = $value->get();
        }

        return $this->callsWith(
            function ($arguments) use ($index, $value) {
                $arguments->set($index, $value);
            },
            [],
            false,
            true,
            false
        );
    }