Rinse rice until the water runs mostly clear and drain well. Melt 1 tablespoon butter in a heavy saucepan over medium heat and toast almonds and pine nuts for 2 to 3 minutes, stirring, until golden; transfer to a small plate.
Add oil to the saucepan and cook beef and onion over medium-high heat for 8 to 10 minutes, breaking the beef into small crumbles and cooking to 160°F.
Stir in allspice, cinnamon, pepper and salt for 30 seconds. Add drained rice and stir gently for 1 minute.
Pour in broth and bring to a boil. Cover tightly, reduce heat to low and cook for 16 to 18 minutes until the liquid is absorbed and rice is tender.
Remove from heat and rest covered for 10 minutes. Dot with the remaining tablespoon butter and fluff gently with a fork.
Divide among four bowls and scatter the toasted almonds and pine nuts over the rice just before serving.