Give the LCP image fetchpriority high
The browser finds your hero image late and then queues it behind the stylesheet and three scripts, so the largest paint lands a second after it could have. fetchpriority="high" moves it to the front of that queue.
<img src="/hero.avif" width="1200" height="630" fetchpriority="high" alt="Dashboard" />One image per page, the one that is actually the LCP element, and never loading="lazy" on it: lazy delays discovery, which is the opposite of what you want. Below the fold, loading="lazy" with fetchpriority="low" leaves the bandwidth for the image that matters.
frontendperformance