It isn't a bug. To use a subquery your should pass ONLY a closure to the where function. You're passing a string first so it doesn't treat it as a subquery. Furthermore byUuid won't be found on query builder, so you should probably create the custom scope. public scopeByUuid instead.
Here's the subquery example from the documentation note the omission of a string parameter in the where clause.
$users = User::where(function (Builder $query) {
$query->select('type')
->from('membership')
->whereColumn('membership.user_id', 'users.id')
->orderByDesc('membership.start_date')
->limit(1);
}, 'Pro')->get();