Soften the cashews (optional): If you have a high-powered blender, you can skip this step. Otherwise, add the cashews to a small pot, cover with water, and bring to a boil. Boil for 10 minutes until very tender. Drain and rinse well before using in the cheese sauce. (Softening the cashews helps them blend smoothly into a creamy sauce.)
Cook the base: Heat the olive oil in a large oven-safe skillet over medium heat. Add the onion and cook for 4–5 minutes until softened. Add the garlic and cook for 30 seconds until fragrant. Stir in the oregano and red pepper flakes (if using) and cook for 30 seconds more.
Simmer the beans: Stir in the butter beans and marinara sauce. Bring to a gentle simmer and cook for 5–7 minutes until thick and saucy, adding a splash of water if needed to thin. Stir in the spinach (if using) and let it wilt. Reduce heat to low.
Make the cheese sauce: Add the plant-based milk, cashews, nutritional yeast, lemon juice, tapioca starch, garlic powder, and salt to a blender and blend until completely smooth. Pour into a small saucepan and cook over medium heat, whisking constantly, until thick and glossy, 3–5 minutes.
Top with the cheese sauce: Spoon the cheese sauce over the beans in swirls or dollops.
Broil (optional): Place the skillet on the top oven rack under the broiler for 2–4 minutes, until the top is lightly browned and bubbling. Watch closely, as it can brown quickly.
Serve: Remove from the oven and top with fresh basil and vegan parmesan if desired. Serve hot with garlic bread, focaccia, or crusty bread.