Bu servislerin içerisinde elbette controller migration view yok. Projeyi yazarken servisleri yardımcı olarak kullanıyorum. Örneğin dependecy injection ya da normal yükleme ile başka bir sınıf içinde ya da controller içerisinde kullanıyorum.
Dosya yöneticisini bir pakete çevirebilirsiniz çünkü kendine ait controller, migration, view, css, js vs dosyaları olabilir ve projenin sizin tarafınızdan yazılmış kısımlarına ihtiyaç duymadan sıfır bir Laravel projesinde çalışabilir. Diğer taraftan çok spesifik bir işlem yapan bileşeni pakete çeviremeyebilirsiniz çünkü kolayca entegre edilebilmesi için mesela bir önceki projenin neredeyse aynısını yazmanız gerekebilir.
Şöyle bir örnek vereyim.
app/
Services/
StatsAPI/
Providers/
WyscoutProvider.php
Transformers/
FixtureTransformer.php
PlayerInfoTransformer.php
StandingsTransformer.php
StandingsItemTransformer.php
Stats.php
StatsProviderInterface.php
Futbol istatistiklerini çekmek için yazdığım API. API hizmeti veren yer Wyscout ama ileride başka bir API sağlayıcısı ile değiştirmem gerekir diye bu şekilde StatsAPI şeklinde bir servise çevirdim. Yarın diyelim ki Wyscout'dan vazgeçildi, SportMonks ile anlaşıldı. Ben sadece SportMonksProvider.php dosyasını oluşturucağım hepsi bu.
Bu StatsAPI klasörü tüm Laravel projelerinde çalışacak şekilde. Yani klasörü kopyalamam yeterli, pakete çevirme gereği hissetmedim.