Start by making your caramelized onions (this is the longest step). In a large saucepan, add in your olive oil and warm over MED-HIGH heat. Once warm, add in your onion. Add a pinch of salt and pepper if desired. Stir your onion every few minutes. If the onions starts to get dried out, add in 2-3 tbsp of water to steam. You will likely have to do this a few times throughout the cooking process. The onions will start to soften and brown which takes about 15 minutes.
When the onions are nearly fully cooked, push them to one side of the pan. Add in your sliced mushrooms and cook for 5-7 minutes (or until their juices are released and they're slightly browned).
While the onions are cooking, begin boiling your pasta water. Add in a dash of salt. Cook to package instructions. Once cooked, rinse under cool water and set aside
To make your delicious cream sauce, begin heating your olive oil in a large saucepan over MEDIUM heat. Add your flour and stir until combined. Stir in a figure eight for even cooking.
Let the flour/oil mixture cook for 3-5 minutes. It should start to bubble and puff slightly. The sauce will also turn slightly white.
SLOWLY add in your warm milk, whisking at the same time as you add it. If you have a few flour clumps, don't worry, they will likely dissolve as you whisk continuously.
Stir in your parmesan cheese, garlic cloves, salt, and pepper. Cook this sauce over LOW-MED heat for 8-10 minutes, stirring every 30 seconds, until it starts to thicken to your liking.
Add the pasta, mushrooms, and caramelized onions to the sauce and stir until combined.
Top with vegan parm, fresh ground pepper, and chopped parsley if desired. Enjoy!
