Вообще сейчас появляется мысль, что все просто должно делаться через какой-нибудь сервис/репозиторий который в рамках одной транзакции удаляет и первую модель и все связные если надо. И размазывать эту логику не стоит О_о
Правильное решение. Самое просто и придуманных и очевидно будет смотреться