I'm not sure what level of explanation would help you the most. Simply put, advanced packages often rely on other packages to provide their function. Normally when you install such a package, the packages on which it depends are identified and installed as you need them. You can get into trouble though, if you have previously installed versions of packages that are not now the ones you need. Hence this pattern of reinstalling the dependencies in a manual fashion, until you are ready to install the package that is your goal.
To continue following this pattern do as we have done. having installed gtable and rlang,.. now try again to install your goal package, and watch for messages.
(or update all your packages at once and then try your goal - update.packages)
(or use a package manager that can do a lot for you, like renv)