Pre-heat the oven to 180C/350F.
Season the chicken all over with 1/2 tsp salt and 1/4 tsp black pepper. Heat the olive oil in a large deep pot over high heat and add the chicken. Fry each side for 2-3 mins until golden, then remove and lower the heat slightly to medium-high, leaving all the excess fat behind. The chicken doesn't need to be completely cooked through at this point.
Add the mushrooms and fry until they begin to soften. They'll first soak in all the oil, then begin releasing moisture, which will then start evaporating. As it starts to evaporate add in the onion and fry until both the onion and mushrooms are completely soft and golden. Add the garlic and fry for a minute longer.
At this point add the pasta to salted boiling water, cook until al dente then drain.
Lower heat to medium and melt the butter in with the mushrooms, scraping off any flavour from the pan as you go. Stir in the flour to create a roux, then gradually pour in the milk, stock then cream, stirring as you go to avoid lumps forming. Stir in 1/2 tsp salt and 1/4 tsp pepper (or to taste - season well to bring out the best in the sauce) alongside the resting juices from the chicken, then bring to a gentle simmer. Allow to bubble away for 2 mins to thicken (it should coat the back of a spoon). Shred/slice the chicken during this time.
Turn off the heat and stir through the chicken, then stir through the parmesan and half of the Gouda. Toss in the spaghetti until well-coated in the sauce, then pour it all into a large baking dish. Smooth the top with your wooden spoon then sprinkle over the rest of the cheese.
Bake in the oven for 15 mins until golden and bubbly, then serve with parsley and enjoy!