Boil water in a large saucepan over medium-high heat. Season with salt. Add macaroni. Cook for 6 minutes. Add cauliflower florets. Cook 4 minutes. Drain. Set aside. Reserve 1 cup pasta water.
Meanwhile, place a large frying pan or skillet over medium-high heat.
Melt butter.
Add onions and garlic. Cook, stirring occasionally, for about 2-3 minutes or until soft and translucent.
Reduce heat to medium-low.
Add flour. Cook, stirring continuously, for 2-3 minutes.
Gradually add milk, stirring continuously, ensuring milk is fully incorporated into the sauce. Season with salt and pepper.
Add paprika, dijon mustard and cayenne pepper. Stir to combine.
Add grated cheddar and mozzarella. Stir to combine.
Increase heat to medium-high.
Add cooked pasta and cauliflower florets. Toss to combine.
If the sauce is too thick, add a little reserved pasta water.
Heat through.
Garnish with chopped parsley.