Global Scopes с ->where('active', true) решит проблему с такими товарами во всех запросах (каталог, поиски, 404 на show и тд) за 1 минуту) Будет что-то типа самопального soft delete. Единственное в запросах где нужны будут все товары (включая inactive) необходимо будет помнить о скопе и добавлять withoutGlobalScope.