Start here. This is the direct spoken answer to practice first.
Overview
Spring ultimately evaluates authorities; roles and scopes are naming conventions and upstream models mapped into them.
GrantedAuthority is Spring Security's common representation of a permission-like value on an authentication. A role is usually represented as an authority with the ROLE_ prefix; hasRole("ADMIN") applies that convention, while hasAuthority checks the exact string. OAuth scopes from a JWT resource server are commonly mapped to authorities such as SCOPE_orders.read. The names must match the configured claim mapping and authorization rules.