Heat your olive oil in a large skillet over medium-high heat for about 2 minutes. Add the diced onion, carrots, and celery—these are your flavor foundation. Sauté them together for 5-7 minutes until the onion turns translucent and the carrots start to soften slightly. This step takes just a few minutes but makes a huge difference in the final flavor.
Add your minced garlic to the same skillet and stir constantly for about 1 minute. You'll hear it sizzle immediately as it hits the hot oil, and that sizzle tells you it's cooking perfectly. Don't walk away here because garlic burns fast and tastes bitter if you're not paying attention.
Toss in the chicken thigh strips and cook them until they're lightly browned on the outside—about 4-5 minutes. They don't need to be fully cooked through because the slow cooker will finish the job. I personally don't panic if some pieces are still a little pale because they'll cook more later.
Transfer your sautéed vegetables, chicken, and any browned bits from the pan into your slow cooker. Add the soaked cannellini beans, chicken broth, diced tomatoes, oregano, thyme, smoked paprika, and black pepper. Stir everything together to combine, making sure the beans are distributed evenly throughout the liquid.
Cover your slow cooker and set it to cook on low for 6 hours. Don't lift that lid constantly—every time you peek, you add 15 minutes to the cooking time. I learned this the hard way when I kept checking on mine and ended up with undercooked beans.
After 6 hours, your kitchen will smell like warm herbs and caramelized chicken—that's your signal that everything's ready. Add the uncooked ditalini pasta directly to the slow cooker and stir it in with the broth. Cover it again and let it cook for exactly 25-30 minutes until the pasta reaches that perfect tender texture.
Taste the pasta fagioli slow cooker recipe and adjust your seasoning with salt and pepper as needed. Ladle it into bowls and top each serving with a sprinkle of Parmesan cheese. Serve it piping hot and watch how fast it disappears from the table.