Dice the onions and place them in a skillet with the butter.
Cook the onions over medium-low heat, stirring occasionally, allowing them to soften and then slowly brown. Continue cooking for about 30 minutes, or until they achieve a deep copper brown color and jammy texture. If the skillet dries out too much as the onions cook, lower the heat slightly and add a tablespoon or two of water. On the flip side, if the onions are taking too long to cook, increase the heat slightly.
Meanwhile, stir together the cream cheese, sour cream, Worcestershire sauce, garlic powder, salt, and pepper in a bowl until smooth and evenly combined.
Once the onions are fully caramelized, stir them into the dip.
Allow the dip to sit for about 15 minutes for the flavors to blend, then taste and adjust the seasonings to your liking. Serve with your favorite chips or spread onto a sandwich and enjoy!