Merhaba, elimden geldiğince sorularını açıklamaya çalışayım.
n+1 problemi şöyle oluyor ; Dökümantasyonda anlatıldığı gibi 25 kitabı olan bir yazar olduğunu düşünelim. Şimdi kitapları bir sayfada listelediğini düşün. Kitap::all() dediğinde tüm kitapları getiren bir sql çalıştırmış olacaksın. Daha sonra kitabın yazarını göstermek için laravel tekrar her kitapda ekstra bir sql daha çalıştıracak ki yazarın ismini getirsin. Bu demek oluyorki kaç kitabın varsa o kadar fazla sorgu çalışır. Sorgu sayısını azaltmak içinse with() fonksiyonunu kullanarak yazarları ilk sorgumuza dahil ediyoruz böylece yazarlar kitapların getirildiği sorguyla beraber gelmiş olduğundan laravelin ekstra sql çalıştırmasına gerek kalmıyor.
get den önceki fonksiyonlar sorguya yeni özellikler,koşullar vs eklemede kullanılır. get() fonksiyonu kendinden önceki fonksiyonlara göre sql sorgusunu çalıştırmana yarar. mesela with() kullandığında sql sorgusu oluşturulur ancak çalıştırılmaz. Çünkü sorguya yeni özellikler ekleyebilirsin. Çalıştırmak için sonuna get() fonksiyonunuda eklersin. Ancak bazı fonksiyonlar get'e ihtiyaç duymadan kendileri sorguyu çalıştırır örneğin find() veya all() fonksiyonu gibi.
SQL kodlarını görmen için 2 yol var aslında temelde aynı şeyler de diyebiliriz

Birincisi Profiler isimli bundle ı kullanabilirsin.
https://github.com/juy/profiler adresinden ayrıntılara ulaşabilirsin. Sana bir çok bilgiyle beraber sql sorgularınıda gösterecektir. Eğer daha basit bişey istersen ikinci olarak sorguları kendin ekrana basabilirsin. Bunun için routes dosyasında şu şekilde bir event listener oluşturmalısın ;
Event::listen('illuminate.query',function($sql){
var_dump($sql);
});
Laravel her sql çalıştırdığında bu olayı tetikleyeceği için sqlleri sayfada görebileceksin.