public function with(string ...$variables): self
    {
        $query = new self;
        $query->clauses = $this->clauses->add(
            new Clause\WithClause(...$variables)
        );

        return $query;
    }
public function with(string ...$variables): self
    {
        $query = new self;
        $query->clauses = $this->clauses->add(
            new Clause\WithClause(...$variables)
        );

        return $query;
    }
public function with ( string ... $ variables ) : self { $ query = new self ; $ query -> clauses = $ this -> clauses -> add ( new Clause \ WithClause ( ... $ variables ) ) ; return $ query ; }
Add a WITH clause

@param string[] $variables

@return self
Add a WITH clause