EDIT: As of version 5.1 pluck is deprecated, since 5.2 its meaning is completely different (as lists used to be), so use value method instead.
You're trying to get property of the array, so obviously you're getting error.
If you need single field only, then use pluck (which returns single value - string by default):
// let's assume user_id is 5
DB::table('attendances')
->where('date_only', '=', $newdate)
->orderBy('logon','asc')
->pluck('user_id'); // "5"
When you need whole row, then first (which returns stdObject):
$att = DB::table('attendances')
->where('date_only', '=', $newdate)
->orderBy('logon','asc')
->first();
$att->user_id; // "5"
$att->any_other_column;
And get is when you want multiple results (which returns simple array of stdObjects):
$result = DB::table('attendances')
->where('date_only', '=', $newdate)
->orderBy('logon','asc')
->get();
$result; // array(0 => stdObject {..}, 1 => stdObject {..}, ...)
$result[0]->user_id; // "5"
->first()