Часто приходится рыться в исходниках ларавелевских пакетов. И находки иногда очень радуют. laravel/legacy-factories. Им надо определять новая или старая фабрика находится в конкретном файле. Новая - это с классом, a старые были просто с вызовами функций, без классов. Решение меня прямо поразило :) Очень много возможностей для ложно-отрицательных, да и ложно-положительных ответов. Так, что будьте крайне аккуратны если используете данный пакет вместе с новыми фабриками. Никаких своих BaseFactory. Аккуратненько, как по минному полю.
Оправданием является то, что этот код в продакшене то не вызывается, так что падать будет только на машинах разработчиков и на CI. Да и трудно решить эту задачу без какого-нибудь nikic/php-parser...