There is no universal practice to name functions that return Booleans, because such Boolean results can have a broad variety of purposes. The main naming rules are to use names that reveal the intentions, be consistent, and avoid names that are too long.
Some authors proposed popular recommendations:
Steve McDonnel's popular Code Complete suggests the list that you have "is", "has", "should", or "can", but for variable names. You can easily extend it to method names, since R.C. Martin recommends to use a verb or a verbal phrase for method names, which is not incompatible with those prefixes.
Stephen Colebourne, a contributing expert to the Java JSR standardization process, proposed a list for method prefixes in a 2011 article in which there is only is
that has an explanation referring to Boolean results. By the way, his list made it into the official Java tutorial
Interestingly, in view of the prefix in the above list, your naming would be ambiguous:
check: Checks if something is true, throwing an exception if it is not true. Example foo.checkValid().
Get rid of the checkWhether
prefix. You could for the variable even get rid of the prefix:
const readyForPublicProfile = isReadyForPublicProfile(teacherOf);
if(readyForPublicProfile) {
publish();
}