In a saucepan, melt the butter over medium heat. Add the flour and stir constantly for about 1-2 minutes to cook the flour, creating a roux.
Gradually pour in the milk, whisking continuously to avoid lumps. Cook the mixture, stirring constantly, until it thickens and forms a smooth, creamy b chamel sauce.
Add the diced ham or chicken (or vegetable), grated cheese, salt, pepper, and nutmeg (if using). Stir well to combine the ingredients, allowing the cheese to melt. Cook for a few more minutes until the mixture thickens further.
Remove the saucepan from the heat and transfer the mixture to a shallow dish or baking sheet. Spread it out evenly and let it cool to room temperature.
Once cooled, cover the dish with plastic wrap and refrigerate for at least 30 minutes or until the mixture is firm and easy to handle.
Take a spoonful of the chilled mixture and shape it into a small cylinder or oval shape using your hands. Repeat this process with the remaining mixture.
Dip each croquette into the beaten eggs, then roll it in breadcrumbs, ensuring an even coating. Place the coated croquettes on a baking sheet or plate.
In a deep pan or skillet, heat vegetable oil to a medium-high temperature for frying.
Carefully place a few croquettes at a time into the hot oil and fry until golden brown on all sides. Use a slotted spoon to remove the cooked croquettes and place them on paper towels to drain excess oil.
Repeat the frying process until all the croquettes are cooked.
Serve the Spanish Croquettes hot as an appetizer or a snack, accompanied by a dipping sauce of your choice, such as aioli or tomato salsa.