In a large, deep frying pan over medium-high heat, warm the oil. Add the onion and sauté until translucent, 3–4 minutes. Add the beef and cook, stirring to break up any clumps, until the meat begins to brown, 7–8 minutes. Spoon off and discard the excess fat.
Cook the tomatoes and seasonings
Add the garlic, chili powder, cinnamon, and allspice, if using, and cook, stirring frequently, for 1 minute. Stir in the tomatoes, broth, raisins, tomato paste, and vinegar. Bring to a simmer, reduce the heat to medium, and cook, uncovered, until thickened toa stewlike consistency, 10–15 minutes. Season with salt and pepper. Serve the picadillo over the rice, if using.