Wydaje mi się, że rozsądniejsza byłaby tu relacja 1 do 1 czyli with('billingAddress')->with('deliveryAddress').
Czy jestem w stanie dodać warunek do joina jeszcze w Eloquent?
Metoda has chyba się tu nie sprawdzi bo jak dobrze rozumiem ona służy do wyciągania wierszy rodzica na podstawie warunków dotyczących wierszy dzieci, a ja po prostu chciałem obiekt usera z oboma adresami.
Za pomocą scope wyszło mi się coś takiego ale nie jestem z tego w pełni zadowolony

$user = User::find(Auth::id()); $user->billingAddress = UserAddress::byUser(Auth::id())->byType('billing')->first(); $user->deliveryAddress = UserAddress::byUser(Auth::id())->byType('delivery')->first();
Dobra.. Było to chyba najprostsze jak się dało...
public function billingAddress() { return $this->hasOne('Shop\UserAddress')->where('type', '=', 'billing'); } public function deliveryAddress() { return $this->hasOne('Shop\UserAddress')->where('type', '=', 'delivery'); }