How to create [:*1..] type matches without creating a direct relationship

How to query out MATCH (a:company)-[:orders]->(:item)-[made_by]->(b:company)-[:orders]->(:item)-[made_by]->(:c:company) amd so on without creating a direct relationship between two company nodes.

Do you have access to the ID's of each company you're trying to query? If so you could probably do something like:

MATCH (s:startCompany {id: startID})-[o]->(i)->[m]->(e:endCompany{id: endID})
return s, o, i, m e

If you wanted to check for other companies in the middle you could add an optional match for companies as well.

This answer is based on this example from Stack Overflow neo4j - get all relationships for a node with cypher - Stack Overflow

If you know the count then it could be something like r*1..3 as well