Create relationship of two new nodes in the same transaction neo4jdriver

I get an issue that when I have 3 separated statements in the same transaction, two first statements are create 2 nodes (for example 1 node is Category label, 1 node is Product label).

After that I create the relationship between them is third statement and commit transaction.

When I look up to Neo4j database, the relationship is not created.

Please help me to explain that I am wrong or missing anything. Thank you all. Here is my code:

public async Task CreateCategoryAndProduct(Category category, Product product, BelongToRelationship relationship)

        await this._transaction.RunAsync("CREATE (node: Category {" +
                                        $"categoryId: {category.CategoryId}," +
                                        $"categoryName: {{category.CategoryName}})" +
                                        "RETURN node");

        await this._transaction.RunAsync("CREATE (node: Product {" +
                                        $"productId: {product.ProductId}," +
                                        $"productName: {{product.ProductName}})" +
                                        "RETURN node");

        await this._transaction.RunAsync("MATCH (cat: Category), (prod: Product)" +
                                        $"WHERE cat.CategoryId = {category.CategoryId} " +
                                        $"AND prod.ProductId = {product.ProductId}" +
                                        $"CREATE (prod)-[rel: {relationship.Label}]->(cat)" +
                                        "RETURN cat, prod, rel");

        return await this._transaction.CommitAsync();
    catch (Exception ex)
        await this._transaction.RollbackAsync();
        throw ex;