public function onMatch(string $cypher): self
    {
        $clause = $this->clauses->last();

        if (
            !$clause instanceof Clause\MergeClause &&
            !$clause instanceof Clause\OnCreateClause
        ) {
            throw new NonMergeClause;
        }

        $query = new self;
        $query->clauses = $this->clauses->add(
            new Clause\OnMatchClause($cypher)
        );

        return $query;
    }