Sahih Muslim 1651 c
'Adi reported Allah's Messenger (ﷺ) as saying:
When anyone amongst you takes an oath, but he finds (something) better than that he should expiate (the breaking of the oath), and do that which is better.
حَدَّثَنِي مُحَمَّدُ بْنُ عَبْدِ اللَّهِ بْنِ نُمَيْرٍ، وَمُحَمَّدُ بْنُ طَرِيفٍ الْبَجَلِيُّ، - وَاللَّفْظُ لاِبْنِ طَرِيفٍ - قَالاَ حَدَّثَنَا مُحَمَّدُ بْنُ فُضَيْلٍ، عَنِ الأَعْمَشِ، عَنْ عَبْدِ الْعَزِيزِ بْنِ رُفَيْعٍ، عَنْ تَمِيمٍ الطَّائِيِّ، عَنْ عَدِيٍّ، قَالَ قَالَ رَسُولُ اللَّهِ صلى الله عليه وسلم ‏
"‏ إِذَا حَلَفَ أَحَدُكُمْ عَلَى الْيَمِينِ فَرَأَى خَيْرًا مِنْهَا فَلْيُكَفِّرْهَا وَلْيَأْتِ الَّذِي هُوَ خَيْرٌ ‏"‏ ‏.‏