Regarding this page (https://supabase.com/docs/guides/ai/hybrid-search) when you use to_tsvector, then you're specifying English but when you call websearch_to_tsquery you don't specify any language which uses "simple" by default. What this means in practice is that a word like "vehicle" will be stored as "vehicl" in the lexeme map but the query will be executed for "vehicle". You should use a consistent language configuration across the vector storage and query look-up.
Supabase gives you the tools, documentation, and community that makes managing databases, authentication, and backend infrastructure a lot less overwhelming.