`use-package` has pretty much simplified everything:

  ;; c
  (use-package c-mode
    :ensure nil
    :defer t
    :mode "\\.cu?\\'"
    :config (setq c-default-style "gnu"
                  c-basic-offset 2)
    :hook ((c-mode . lsp)
           (c-mode . bmacs-ide)))

Use-package can even install third party packages automatically. Definitely worth learning. I converted my .emacs a few years ago. I'm using borg[0] to install stuff though because I like git.

[0] https://github.com/emacscollective/borg