umutyerebakmaz Controller içinde OrderDetail getirirken
with('deliveryAddress') kullanmazsanız OrderDetail için tek sorgu atılır, şablon render edilince orada ilişkiyi çağırdığınız için ikinci sorgu şablon render edildiği sırada atılır.
Controller içinde
with('deliveryAddress') kullanırsanız 2 sorgu da orada atılır, şablon render edilirken başka sorgu atılmaz çünkü hem OrderDetail hem de deliveryAddress ilişkisi şablondan önce zaten $orderDetail değişkenine yüklenmiştir.
Günün sonunda her iki şekilde de 2 sorgu atılır ama şablonda kullandığınız ifade belli bir şarta göre işleniyorsa, if bloğu içindeyse, yani sorgunun yapılmama ihtimali varsa controller içinde with kullanmamak size 1 sorgu tasarrufu kazandırır.
Genel olarak önerdiğim değişkenlerin mümkün olduğunca controller içinde oluşturulması ve şablonların sadece veriyi göstermek için kullanılması. Sizin örnek HasOne olduğu için bir çok büyük fark olmuyor, genellikle foreach gerektiren ve/veya iç içe ilişki yüklenen durumlarda büyük farklar oluşur.
Ayrıca API yazarken ve Blade kullanırken durum değişiyor.