One of my favorite ways to create textures is to use a combination of substance designer and mixer. I especially use this method if I can't find something in Bridge and need something to fit the project requirements. In this case I wanted some specific tiles for the temple floors. I love the control you get from creating the initial height map in designer and then layering different textures in mixer using the Height slider and Wrap to Underlying which always results in "happy" accidents that you would not have perhaps thought of creating in the first place that are very nuanced plus its a fast way to experiment. The downside is that its not fully procedural but I feel that this combination leads to the most realism anyway unless you have a long time to work on the texture creation and usually that may not be the case.
So I start creating my height map that I will use in Mixer. In this project because it was a VR project (although this would apply for a game in most cases as well) I used it as a Normal map (Generate from Displacement). Once I'm happy with the overall layout I will usually do a few more iterations to test out - wider grout perhaps, some more or less cracks etc. After that I export the normal and the roughness map and start experimenting in mixer.