Put the onion (sliced), coriander, parsley, tomatoes in a blender or food processor and blitz it up. Throw in the stems of the fresh herbs as well. They are going to be blitzed up anyway and the stems have so much flavor!
Put the olive oil in a pan, add the above mixture and let it simmer for 2 minutes. Then you add the meat (if you use any), the stock and all the other spices and let it simmer for another 10 minutes.
Then you add the water. I don’t measure the water, I do it by sight, add as much as you like. Let it simmer for 2-1/2 to 3 hours. You can check if it’s done by looking at the ox tail. The meat should be falling off the bone. If you don’t use the meat, then half an hour of simmering is enough.
When the meat is done you add the chickpeas and lentils, they only need 20 minutes to cook.
After 20 minutes add the vermicelli and cook it for another 8 minutes to cook the vermicelli.
Mix the flour or cornflour in a bowl with some cold water en stir well so there are no lumps in the mixture. If you are not sure all the lumps are gone, pass it through a sieve. Then you bring the soup to a full simmer and slowly- and in a thin stream - pour in the flour mixture. Stir constantly and keep the soup simmering so the flour doesn’t stick to the bottom. You will notice the soup beginning to thicken when you've used approximately half the flour mixture. The thickness of harira is up to you. Some like to thicken the broth so that it achieves a cream-like consistency. Make sure to let it simmer for at least 2/3 minutes to cook the flour otherwise your soup will taste like raw flour.
Taste and add salt and pepper when it needs it. If you have used salted stock, you don’t need to add (a lot of) salt.
Serve with a lemon wedge on the side to be drizzled on top when desired.