Technically, if you have disabled the guest user support in the config, you can remove the guest user.
However, any method that is user related, expects a user to be there. And that includes has_access. You can not say "does the current user have access to this page" if no current user is defined. This is the main purpose of the guest user, it represents "the public" or "the visitor", the anonymous guest.
If you don't have a guest user, you need to do an Auth::check() to make sure you have a valid user before you check any of the users properties, including rights.