public function withParameter(string $key, $parameter): self
    {
        if (Str::of($key)->empty()) {
            throw new DomainException;
        }

        $query = new self($this->cypher);
        $query->parameters = $this->parameters->put(
            $key,
            new Parameter($key, $parameter)
        );

        return $query;
    }