Heat butter in a pot over medium to medium-high heat. Add your mirepoix - onion, celery and carrots. Cook for 5-8 minutes or so until well browned, stirring often. Be careful not to burn.
Turn the heat to medium, sprinkle the flour over the veggies and continue cooking, stirring constantly, for another 5 minutes or so, to cook off the raw flour taste and allow the flour to slightly brown (aim for golden brown colour, but do not burn.)
NOTE: if you have trimmings, bones, chicken carcass - sear it until golden and well browned before searing the veggies, remove to a plate and add in step 2 after you have added the stock. The addition of these things will further intensify the flavour of the gravy, however, add another 20 minutes to the preparation.
Pour about 1/3 cup of stock very slowly while stirring vigorously. The goal is to work out all the little bits of flour into thick paste. Keep adding stock in a steady slow stream while stiring vigorously and working out any lumps that may form. THIS IS IMPORTANT - DO NOT RUSH ADDING THE LIQUID. Add bay leaves and dried thyme. Bring everything to a boil, reduce to simmer and simmer uncovered for 25-45 minutes, the longer - the better, but the flavours will start coming together after just 20 minutes or so for this delicious quick gravy. Keep stirring your gravy every couple of minutes to prevent scorching the pot. If the gravy reduces too much, you can always add more stock to thin it out and reach your desired consistency.
Pass the gravy through a fine mesh sieve, pressing down on the vegetables to extract as much liquid as possible. Add soy sauce, if using. Season your gravy to taste with salt and pepper. You may add the optional cream at this time. Serve.
The amount of flour is correct in this recipe. Some recipes call for double the amount of flour. But this recipe extracts the flavour with a lengthy simmering process (at least 25 minutes as per step 2,) so your gravy will reduce and thicken.