Cook spaghetti according to its instructions, adding some salt to the water. Drain and set aside.
In a large pot, heat 3 tbsp of oil. Add ground beef, breaking it up to prevent clumps. When it is no longer pink, remove from the pot, set aside and drain the grease, leaving 2 tbsp in the pot.
Caramelize onions in the leftover grease and add peppers. Cook until softened. Add garlic and cook for 1 minute.
Add diced tomatoes and tomato paste. Stir well and turn up heat till sauce just starts to boil and return heat to medium high.
Add basil, parsley, oregano, peanut butter, sugar and salt/pepper to taste. Continue to stir for 1 minute.
Add ground beef and bay leaves. Cook for 2 minutes, allowing flavours to meld together. Add chopped parsley and cook for another minute. Simmer for 30 minutes.
Serve over spaghetti. Top with chopped parsley and grated Parmesan (not shown).