Drain the beans in a colander (do not rinse). Transfer them to a 7 x 10-inch (18 x 25 cm) casserole baking dish.
Add the chicken meatballs, sausage, or diced cooked chicken. Push the beans and chicken toward the upper half of the dish to leave space for the rest of the ingredients.
Add the cauliflower florets and cherry tomatoes. If florets are extra large, halve or quarter them.
Add grated garlic. Drizzle the cauliflower and tomatoes with olive oil, then season with a pinch of salt and black pepper.
Remove the spinach artichoke dip from its packaging and place it directly on top of the ingredients in the center.
Bake for 20–30 minutes (check at the 20-minute mark).
Carefully remove the dish from the oven. Add the spinach while the casserole is still hot.
Use a wooden spoon to gently press down the spinach artichoke dip and stir to mix everything together until the flavors are incorporated.
Sprinkle with parmesan, if using. Taste and adjust seasoning with more salt and pepper if needed. Serve warm.
Notes
Bean selection: Cannellini beans are mild and creamy, but great northern or navy beans also work well.
Spinach artichoke dip: Any brand works as long as the quantity is similar to maintain balance. I’ve also tested a dairy-free version (from Gotham Greens) and it’s delicious.
Spinach: Add after baking so the leaves wilt from the residual heat without burning.
Salt level: Pre-cooked chicken sausage or meatballs can be quite salty. Always taste the casserole before adding more. If it already tastes seasoned enough, skip the extra salt.
Olive oil: Drizzle generously over cauliflower and tomatoes so they roast golden and flavorful.
Storage: Leftovers taste great even cold. Store in the fridge and enjoy within 3 days.