направление верное
в данному примере SelectUsers это солянка из
это UserRepository и PurchaseRepository
по принципу единственной ответсвенности нужно разнести по этим двум классам
соответсвенно контроллер будет
class TestController extends Controller
{
protected $purchaseRepository;
public function __construct(PurchaseRepositoryInterface $purchaseRepository){
$this->purchaseRepository = $purchaseRepository;
}
public function index()
{
$purchase = $this->purchaseRepository->selectpurchase(2);
dump($purchase);
}
}
по организации бизнес логики, можно в сервисы, но опять же эти сервисы удобно сформировывать от use cases а не от сущностей, поэтому формируются такие классы и методы:
Shopping->addItemToShoppingCart()
Shopping->remoteItemFromShoppingCart()
Shopping->checkout()
Searching->searchByAuthor()
Searching->advancedSearch()
или же на каждое действие свой класс, паттерн команда
Shopping/AddItemToShoppingCart
Shopping/RemoteItemFromShoppingCart