Brown the beef: Heat oil in a large pot over medium-high heat.
Add ground beef and break it up. Cook until browned with little pink left, about 5–7 minutes. Drain excess fat if needed.
Soften the aromatics: Add onion and bell pepper.
Cook 4–5 minutes, stirring, until the vegetables soften. Add garlic and cook 30 seconds until fragrant.
Bloom the spices: Stir in chili powder, cumin, paprika, cinnamon, and allspice. Cook 30–60 seconds to wake up the spices.
Build the sauce: Add tomato paste and cook 1 minute.
Then add tomato sauce, crushed tomatoes, Worcestershire, brown sugar, vinegar, bay leaf, and broth. Stir well and bring to a gentle simmer.
Simmer low and slow: Reduce heat to low. Partially cover and simmer 25–35 minutes, stirring occasionally, until the chili thickens and flavors meld.
Add beans and adjust: Stir in kidney beans.
Simmer 5–10 minutes more. Season to taste with salt and pepper. If it’s too thick, splash in more broth; if too thin, simmer uncovered a bit longer.
Cook the spaghetti: While the chili simmers, cook spaghetti in well-salted boiling water until al dente.
Drain and toss with a little olive oil to prevent sticking.
Serve: Add a bed of spaghetti to each bowl. Ladle chili over the top. Finish with shredded cheddar, chopped onion, oyster crackers, and a dash of hot sauce if you like.