You need to use whereHas if you want to limit the Request model by its relations
App\Request::where('id',4)
->whereHas('quotes', function ($query) {
$query->where('status','=','3');
})
->with('quotes','sourceTable','destinationTable')
->get();
but your query does not make sense. If you know the id of the request you want, checking the status is not necessary ?
If your requirement is actually "where request has id "4" along with all quotes having status "3" and sourceTable ,DestinationTable. " then you need to limit the related model and use a function on the with;
App\Request::where('id',4)
->with('quotes', function ($query) {
$query->where('status','=','3');
})
->with('sourceTable','destinationTable')
->get();

