Heat olive oil and butter in a large skillet over medium heat.
Add chopped shallots and cook for 3–4 minutes until soft and golden.
Stir in minced garlic, tomato paste, and bouillon cube; cook for 1–2 minutes until fragrant.
Add cherry tomatoes and a pinch of salt; cover and cook for 1 minute to soften.
Uncover and gently mash tomatoes; stir in basil and let simmer for 2–3 minutes.
Add orzo and stir to coat in the tomato mixture.
Pour in water or broth gradually as it cooks; stir well.
Cover and simmer on medium heat for 12–15 minutes, stirring and scraping the bottom every 5 minutes.
If mixture dries out before orzo is cooked, add more water or broth as needed.
Stir in coconut milk (if using), adjust salt to taste, and simmer until creamy.
Remove from heat, add fresh basil and a small knob of butter, and mix to finish.
Serve warm and enjoy!