Heat olive oil in a large Dutch oven over medium-high heat. Sear beef in batches until browned on all sides. Remove and set aside.
Add diced onions to the same pot and cook for 5 minutes until softened. Stir in garlic and cook for another minute.
Sprinkle in cinnamon, cumin, and smoked paprika. Stir and toast the spices for about 30 seconds.
Pour in crushed tomatoes and beef broth. Return the seared beef to the pot and bring everything to a gentle simmer.
Cover and let it cook on low heat for about 1 hour, stirring occasionally.
Stir in chickpeas and dried apricots. Simmer uncovered for another 20-30 minutes until the beef is tender and the sauce thickens.
Adjust seasoning with salt, pepper, and honey if using. Garnish with fresh cilantro before serving.