
Интеграция Laravel с платёжными системами: рабочие приёмы
Дубли списаний, потерянные вебхуки, статус «оплачено» без денег на счёте. Разбираем, как принимать платежи в Laravel так, чтобы деньги и заказы не расходились.

Дубли списаний, потерянные вебхуки, статус «оплачено» без денег на счёте. Разбираем, как принимать платежи в Laravel так, чтобы деньги и заказы не расходились.

Как отдавать пользователям счета в PDF и отчёты в Excel без падений по памяти и таймаутов: выбор библиотек, потоковая запись и вынос генерации в очередь.

Отчёт на 50 тысяч строк валит воркер по памяти, кириллица в PDF превращается в квадраты, а файл скачивается пустым. Разбираем, где ломается генерация документов в Laravel и как этого избежать.

Форма принимает картинку, а через месяц в storage лежат гигабайты мусора, публичные ссылки не работают, а SVG с XSS уже открыли админку. Разбираем, где ломается загрузка изображений в Laravel 11 и как её делать правильно.

Загрузка аватарок и товарных фото упирается в выбор библиотеки обработки, диска хранения и момента ресайза. Разбираем варианты и цену каждого.

Трейт SoftDeletes кажется очевидным решением для «удаления с возможностью восстановить», но он ломает уникальные индексы и молча искажает подсчёты. Разбираем три подхода и цену каждого.

Мягкое удаление в Laravel выглядит как одна строка в модели, но ломается на уникальных индексах, каскадах и глобальных скоупах. Разбираем приёмы, которые выдерживают прод.

Разбираем новый синтаксис аксессоров через Attribute, кастомные касты и типовые ошибки: почему JSON превращается в строку, а деньги теряют копейки.

Касты и аксессоры в Eloquent удобны ровно до момента, когда в базе оказывается null там, где ждали объект, а json-поле молча перезаписывает изменения. Разбираем, где эти абстракции ломаются.

Скоупы в Eloquent удобны, пока не начинают тихо ломать фильтрацию, ORDER BY и eager loading. Разбираем, где именно, и собираем чек-лист перед выкаткой.

Один и тот же фильтр «только активные» расползается по десяти контроллерам. Разбираем скоупы, кастомные билдеры, DTO-фильтры и репозитории в Laravel 11 — с ценой каждого подхода.

Логика фильтрации расползается по контроллерам, и один и тот же where('active', 1) повторяется в десяти местах. Разбираем локальные и глобальные скоупы Eloquent: когда какой брать и чем каждый платит.