Сразу хочу сказать, что будет много текста, laravel я ещё изучаю, и многих тонкостей не знаю, поэтому могу ошибаться в своих рассуждениях. Я больше задаю этот вопрос, людям которые давно работают с laravel и имеют большой опыт с ним.
Админ пакет tcg/voyager реализуется на некоторых базовых моделях фреймворка laravel, исходя из этого у меня возникла необходимость доработать некоторые базовые модели - возьмём к примеру модель users. Я добавил в неё SoftDeletes, и наследовал ее от модели users, непосредственно voyager пакета, настроил конфиги, все заработало с моей доработкой, но базовый виджет UserDimmer перестал работать так как он работает на user модели voyager. Немного покопавшись в исходниках и документации пакета, я разобрался и решил сделать свой виджет на основе моей модернизированной модели users, сделал новый виджет и все работает. Но есть одна загвоздка - я не уверен, что такой способ правильный, с точки зрения организации структуры файлов, их назначения и решения задачи by laravel way. Поделитесь пожалуйста советом и примерами, как бы вы решили эту, в целом, не сложную задачу, но скажем так «правильно» все оформив.
Ниже на скриншотах, пример моей реализации структуры файлов и сам код - пришлось сделать потомка CustomVoyager (так и не смог определить чем он является согласно архитектуры laravel, и в какую папку его определить) от оригинального класса приложения Voyager, который при инициализации, изменяет его свойство - массив базовых моделей приложения models, и вызывает его Facade, что бы определить, можно ли показывать данный виджет пользователю или у него нет прав на это, в моем случаем инициализация CustomVoyager происходит в моем виджете CustomUserDimmer.