Caret “train” or special package

I see that there is an XGBoost package as well as XGBoost option in the "train" function in Caret. What is the difference between these two options, is it that they provide different settings? More generally, how would one choose between using the "train" function and a standalone package for the method?

Caret's train has two draws: a common API for many different models, and performing hyperparameter tuning by default.