Является ли это вашим реальным сценарием, в котором счет и пользователь означают то, что, я думаю, они имеют в виду?
Потому что я не вижу, как счет может быть удален в реальном мире. Если счет выставлен клиенту по ошибке, он может быть аннулирован, но физические данные не могут быть удалены, в противном случае у вас нет возможности сохранить информацию, содержащую счет. Если счет-фактура действителен, но пользователь, связанный с ним, прерван, вам все равно нужно будет увидеть пользователя, связанного с этим счетом, в противном случае вы потеряете информацию о том, кто выставил или утвердил счет-фактуру или что-то подобное.
Что касается того, чтобы избегать использования удаленных объектов, я не думаю, что это применимо здесь, потому что ни один из этих объектов не может быть фактически удален. Очевидно, они имеют статус просроченного, аннулированного, прекращенного или недействительного для пользователя, создающего новые счета-фактуры или счета-фактуры, по которым оплачиваются или собираются, но они, безусловно, не удаляются в том смысле, что они не существуют или считаются несуществующими, потому что они очевидно, существовал в какой-то момент, так как транзакции были совершены.