Wash the bell pepper and spinach thoroughly. Dice the bell pepper and onion into small pieces so they cook quickly and distribute evenly throughout the quesadilla. If using mushrooms, jalapeños, or tomatoes, prepare them before starting.
Heat a skillet over medium heat and add a small amount of butter or olive oil. Add the diced onion and bell pepper. Cook for 3–4 minutes, stirring occasionally, until the vegetables soften. Add the spinach, if using, and cook until wilted. Transfer the vegetables to a plate.
Crack the eggs into a bowl. Add the milk, if desired, along with the garlic powder, paprika, salt, and black pepper. Whisk until the yolks and whites are fully combined. The milk is optional; the eggs will still be delicious without it.
Add a little butter to the skillet and reduce the heat to medium-low. Pour in the beaten eggs and gently stir with a spatula. Cook until soft curds form and the eggs are just set. Remove the pan from the heat to prevent the eggs from becoming dry.
Mix the scrambled eggs with the cooked vegetables. If you are adding cooked sausage, bacon, or black beans, fold them into the mixture now. Taste and adjust the seasoning as needed.
Place a clean tortilla on a flat surface. Sprinkle cheese over one half of the tortilla, then add a portion of the egg and vegetable filling. Sprinkle another small amount of cheese on top. Fold the tortilla in half to enclose the filling.
Heat a clean nonstick skillet over medium-low heat. Add a small amount of butter or oil and place one folded quesadilla in the pan. Cook for approximately 2–3 minutes on each side, pressing gently with a spatula, until the tortilla is golden brown and the cheese melts.
Transfer the cooked quesadillas to a cutting board and allow them to rest for about one minute. Cut each into two or three wedges using a sharp knife or pizza cutter. Garnish with fresh cilantro and serve warm with salsa, avocado, sour cream, or lime wedges.