Sunan Ibn Majah
2108
Sahih+3

It was narrated from 'Adi bin Hatim that :the Messenger of Allah (ﷺ), said: "Whoever swears an oath then sees that something else is better than it, let him do that which is better and offer expiation for what he swore about

SahihAl-Albani
SahihMuhammad Fouad Abd al-Baqi