Sahih Muslim 1650 c
Abu Huraira reported Allah's Messenger (ﷺ) as saying:
He who took an oath and (later on) found another thing better than that, he should do that which is better, and expiate for the vow (broken by him).
وَحَدَّثَنِي زُهَيْرُ بْنُ حَرْبٍ، حَدَّثَنَا ابْنُ أَبِي أُوَيْسٍ، حَدَّثَنِي عَبْدُ الْعَزِيزِ بْنُ الْمُطَّلِبِ، عَنْ سُهَيْلِ بْنِ أَبِي صَالِحٍ، عَنْ أَبِيهِ، عَنْ أَبِي هُرَيْرَةَ، قَالَ قَالَ رَسُولُ اللَّهِ صلى الله عليه وسلم ‏
"‏ مَنْ حَلَفَ عَلَى يَمِينٍ فَرَأَى غَيْرَهَا خَيْرًا مِنْهَا فَلْيَأْتِ الَّذِي هُوَ خَيْرٌ وَلْيُكَفِّرْ عَنْ يَمِينِهِ ‏"‏ ‏.‏