Make the sauce:
Heat the olive oil in a medium saucepan over medium heat.
Add the ginger, garlic and cook until the ginger and garlic brown a little, about 1 minute.
Add the garam masala, cardamom and paprika and cook 30 seconds.
Add the tomatoes, and 1 cup water, stir and bring to a boil.
Reduce the heat to low and simmer, uncovered, 15 minutes.
Meanwhile, prepare the sloppy joes:
Heat 2 tablespoons olive oil in a large skillet over medium heat.
Add the onion and bell pepper and cook until softened and starting to brown, about 5 minutes.
Add the cumin and cook 1 more minute, seasoning with salt.
Add the ground beef, breaking up the big lumps, and cook about 5 minutes.
Add the prepared sauce to the beef mixture in the skillet.
Stir and bring to a boil, then reduce the heat to low and simmer until the mixture thickens slightly, about 10 minutes.
Stir in creme fraiche, pistachios, and cilantro right before serving.
Toast buns and fill with sloppy joe mixture.