Если предположить, что на самом деле
Изображения хранятся на клиентской серверной стороне (Vue) (Laravel)., то становится более-менее понятно.
Обычный подход такой:
backend - (api) Laravel - методы для получения и сохранения данных.
frontend - (vue) Nuxt - отображение данных api и взаимодействие с api.
---
Вариантов вывода несколько
Обычно это реализуется с помощью css. Но можно генерировать несколько разных превью на сервере.
"resizeImageGet", которая при первом вызове сжимает и обрезает изображение
Можно и так сделать. Тогда в api будет 2 метода uploadUmage - просто сохраняет файл, и resizeImageGet - проверяет что есть превью, создаёт его если нет и отдаёт контент (картинку). Но тогда это уже не чисто api.