isset Laravel'in içinde hazır gelen guest isimli bir middleware var. Eğer bu middleware'i bir rotaya uygularsanız o rotaya sadece giriş yapmamış olanlar yani misafirler erişebilir. Eğer misafir giriş yapıp kullanıcı olarak o rotaya erişmeye çalışırsa RouteServiceProvider::HOME adresine yönlendirilir. Mesela login rotası bu guest middleware'i için uygun bir rota çünkü sadece misafirlerin login formunu görmesini isteriz; kullanıcıların da çıkış yapmadan tekrar giriş yapmaya çalışmasını istemeyiz.
Fortify içindeki redirect ise misafir için değil giriş yapmış kullanıcı için. Yani kullanıcı giriş yaptıktan sonra ya da çıkış yaptıktan sonra yönlendirmeyi kontrol ediyorsunuz. RouteServiceProvider::HOME ise zaten giriş yapmış bir kullanıcı sadece misafirlerin görebileceği bir alana (mesela giriş, kayıt, şifre hatırlatma gibi) erişmeye çalıştığında devreye giren bir yönlendirme için kullanılıyor.
HOME sabiti değeri .env dosyasında yer almaz çünkü .env dosyası sizin ayarlarınızı topladığınız genel ayar dosyası değil uygulamanın farklı çalışma ortamlarında farklı ayarları kullanmasını sağlayan dosyadır. Örneğin kendi bilgisayarınız, dev ortamı ve prod ortamı olmak üzere 3 tane ortamınız olsun. Bu 3 ortamda da veritabanı adı, kullanıcı adı ve şifrenizin farklı olması yüksek ihtimaldir. Bunun için kendi bilgisayarınızdaki .env dosyanıza kendi bilgisayarınızdaki veritabanı bilgilerini yazarsınız. config klasörü içindeki alanlarda env() yöntemini görmüşsünüzdür. Bu yöntemin ikinci parametresine de prod ortamındaki veritabanı bilgilerini yazarsınız. dev ortamına da elle bir .env dosyası ekleyip içerisine dev ortamındaki bilgileri yazarsınız. Böylece uygulamayı geliştirirken, dev ortamında test ederken ve canlı ortamda ayarları değiştirmeden uygulamayı kullanırsınız. Elle .env ekleme sadece prod için de yapılabilir, her ortam için de yapılabilir. Bu durumda HOME sabitinin .env dosyasından gelmesine gerek yok çünkü %99.9 her ortamda aynı rotaya yönlendirme yapacaksınız. Amacından ötürü .env dosyası .gitignore içinde yer alır ve repoya gönderilmez; eklenecekse elle eklenir. .env dosyası bulunduğu ortamda config:cache
komutu ile genel ayar dosyası olarak kullanılabilir elbette. Bu şekilde kullananlar iki sebepten ötürü kullanıyor; ya .env dosyasının tam olarak ne işe yaradığını bilmiyor, toplu ayar dosyası sanıyor ya da repoda bazı bilgilerin gözükmesini istemiyor, geliştiricilerin erişmesini istemiyor ve sadece bu bilgileri sistem adminlerinin, DevOps ekibinin görmesini istiyor.