How to create a Eloquent model instance from a raw Object?

You can try to hydrate your results to Model objects:

$results = DB::select("SELECT * FROM members 
                       INNER JOIN (several other tables) 
                       WHERE (horribly complicated thing) 
                       LIMIT 1");

$models = Member::hydrate( $results->toArray() );

Or you can even let Laravel auto-hydrate them for you from the raw query:

$models = Member::hydrateRaw( "SELECT * FROM members...");

EDIT

From Laravel 5.4 hydrateRaw is no more available. We can use fromQuery instead:

$models = Member::fromQuery( "SELECT * FROM members...");