class UserProjectionFactory {

    public <T> T createProjection(@NonNull User user, @NonNull Class<T> projectionType) {
        var data = userService.getUserData(user);
        var manager = userService.userIsManager(user);

        return projectionFactory.createProjection(projectionType, new UserProjectionSource(user, data, manager));
    }

    @Autowired public  UserProjectionFactory(UserService userService, ProjectionFactory projectionFactory);

}