Start with the meatballs. Add a splash of olive oil to a non-stick frying pan on a medium heat. Add the onion and cook for 8 minutes or until it begins to brown. Next add the garlic and cook for another 1-2 minutes or until both the onion and garlic are brown and caramelised.
Add the onion and garlic to a food processor, followed by the walnuts, beans, lemon zest, rosemary leaves, apricots, soy sauce, a pinch of salt and a large pinch of pepper. Keep pulsing until the mixture has mostly broken down. Note: it's really important to avoid over processing the mixture, otherwise the balls will be too soft and mushy. The mixture should be crumbly with a small pieces of walnuts, apricots and beans still visible.
Transfer the mixture to a large mixing bowl. Add the breadcrumbs, then use your hands to combine the mixture with the breadcrumbs. If the mixture feels too dry, add a drizzle of oil to help bind the ingredients, then take a small handful of the mixture and use the palms of your hands to roll it into a ball. Repeat until you have 16 evenly-sized balls.
Add another splash of olive oil to the pan you used earlier. Next add the balls and - on a medium heat - cook them for 2-3 minutes on each side or until they are brown and crispy all over. See notes if you prefer to bake the balls instead.
Meanwhile add the stock to a large saucepan, quickly bring it to a boil, then add the orzo. Gently boil the orzo for 10-12 minutes or until al dente, stirring regularly to prevent the orzo sticking to the bottom of the pan. Note: add extra hot water from a kettle, if necessary.
When the orzo is cooked, reduce the heat to low and stir in the nutritional yeast, cream cheese, lemon juice, a pinch of salt and a generous pinch of pepper. Cook for a minute, then remove the pasta from the heat.
Next, finely chop the basil, then combine it in a bowl with a few glugs of olive oil and pinches of salt and pepper.
To serve, add the creamy orzo to bowls, then top with the meatballs and basil oil. Enjoy!