Heat a large pot over medium-low heat and add the olive oil. Stir in the onion, garlic, salt and pepper. Cook until the onions soften, about 5 minutes. Add the ground beef, breaking it apart with a wooden spoon. Cook, stirring often, until the beef is browned, about 6 to 8 minutes. At this time I like to keep breaking the beef apart. I also occasionally increase the heat in order to cook off some of the fat from the beef.
Once the beef is browned, stir in the tomato paste, chili powder, paprika and cumin. Cook for another 5 minutes, stirring often. Pour in the tomatoes, green chiles and stock (or water). Add in the pasta. Bring the mixture to a simmer, then cover the pot and cook for 10 to 15 minutes, stirring occasionally. The pasta should absorb all the liquid and plump up! You don't want the heat too high, because the pasta can stick on the bottom. If it needs a few more minutes, keep the pot covered.
Once the pasta is cooked and the liquid has been absorbed, stir in the cheddar cheese. Taste and season additionally if needed.
Serve immediately with sliced green onions and if you're really feeling it, sour cream for serving.