Create your flavor base. In a large skillet or Dutch oven, melt butter over medium heat. Add onions, carrots, celery, and potato (if using) and cook until softened, about 8 minutes. Add mushrooms (if using) and cook until they release their moisture, about 5 minutes more.
Add aromatics. Stir in garlic and cook until fragrant, about 30 seconds. Your kitchen should smell amazing at this point!
Make the roux. Sprinkle flour over the vegetables and stir constantly for 1-2 minutes to cook out the raw flour taste. This step is crucial for a smooth, not gloppy, sauce.
Create the sauce. Gradually add chicken broth, stirring constantly to prevent lumps. Bring to a simmer and cook until the sauce thickens enough to coat the back of a spoon, about 3-5 minutes.
Enrich and season. Stir in the heavy cream, followed by the cooked chicken, frozen peas, thyme, sage, parsley, nutmeg, pepper, and salt to taste. The filling should be moist but not soupy – it will thicken more as it bakes.
Cool slightly. Remove from heat and let cool for about 10 minutes. Hot filling = soggy bottom crust. Nobody wants that!