In a medium-sized saucepan, heat the oil and butter together over medium heat until the butter becomes foamy.
Add the diced onion and a pinch of salt, then reduce the heat to low. Cook the onion for about 15 minutes, stirring occasionally, until it softens and turns translucent.
Once the onion is softened, add the minced garlic and cook for another minute, allowing the garlic to release its fragrance. Stir in the rice and cook for 1 more minute to lightly toast the grains, ensuring each grain is well-coated with the butter and oil.
Pour in the white wine and bring the mixture to a boil. Let it cook for a few minutes, until the wine has reduced by half.
Gradually add half of the vegetable stock, stirring constantly. Continue simmering until most of the liquid has been absorbed by the rice. This should take about 15 minutes.
Once the first portion of stock is absorbed, add the remaining stock one ladleful at a time, stirring constantly as the rice absorbs the liquid. Keep adding stock and stirring until the rice is tender and fully cooked through, which should take around 20-25 minutes.
Once the rice is cooked, stir in the lemon zest. Taste and adjust the seasoning with salt and pepper as needed.
Spread the risotto evenly into a shallow tray with raised edges, then allow it to cool to room temperature.
Once the risotto has cooled to room temperature, scoop it out into about 8 - 10 equal portions. If you’re making smaller arancini balls, make about 15 - 18 balls.
Take one portion of risotto and flatten it slightly in the palm of your hand, then place a small cube of mozzarella cheese and a few chopped sun-dried tomatoes in the center of the flattened rice. Carefully enclose the cheese and tomatoes with the rice, then gently roll it into a ball shape. Repeat this process with the remaining portions of risotto to form between 8 - 10 risotto balls.
Set up your breading station with the flour in the first bowl, the beaten eggs in the second, and the breadcrumbs (season with salt, pepper if you like) in the third.
Take each prepared risotto ball and first roll it in the flour, making sure it’s fully coated. Next, dip the floured risotto ball into the beaten eggs, ensuring the entire surface is covered. Finally, roll the egg-coated ball in the breadcrumbs until it is fully coated. Place each breaded risotto ball on a tray or plate and set aside.
In a large, heavy-bottomed saucepan, pour enough vegetable oil to fill the pan about halfway. Heat the oil over medium-low heat until it reaches 170°C (340°F) on a cooking thermometer. If you don't have a thermometer, drop a small piece of bread into the oil; if it turns golden brown in about 45 seconds, the oil is ready.
Carefully lower the breaded risotto balls into the hot oil in small batches, making sure not to overcrowd the pan. Fry each batch for about 8-10 minutes, turning occasionally, until the balls are golden brown and crispy on the outside. The cheese inside should be melted.
Once golden and crispy, remove the risotto balls from the oil and place them on a tray lined with paper towels to drain excess oil.
Serve with your dip of choice and enjoy!