I'm very new to PostgreSQL, forgive me if something obvious is not clear for me. I have a database with ~450 million rows distributed across 6 tables (every table has primary key). When I run the following query:

Anyone has any idea why this query causes a sequential scan on Payments table? Am I doing something wrong or PostgreSQL has some serious flaws?
I started to seriously doubt in PostgreSQL query planner...