Compare estimates to actual rows
Bad row estimates explain many bad plans. If actual rows are wildly different, indexes alone may not be the real fix.
EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
SELECT *
FROM orders
WHERE account_id = $1
AND created_at >= now() - interval '30 days';