Wrapping the column in DATE() makes the predicate non-sargable — the planner cannot match DATE(created_at) against an index on created_at.
Query a range instead:
If you genuinely need the function form, index the expression itself:
The range version is still preferable — it also works for timestamps with time zones without surprises.