I usually add all the spices after I've added the tomato sauce.

You might want to consider using mince with a higher fat content. Better texture and flavour.

I go:

Onions - fry them up until they're soft and have a tiny bit of colour
Garlic - don't let the garlic brown, it goes bitter I usually add a bit of water or wine at this point to temper the heat
Meat - Brown it slightly before adding the tomatoes, you want to keep it tender
Beans - cook them for a long time so they're tender
Spices - Cumin, chilli powder etc. I've been using canned chipotle chilis in adobo sauce lately - highly recommended if you can find them, but the heat/flavour cooks off a bit if you leave them too long though.