Graham won the under-18 National Youth League Bowl with his junior club Hawick Wanderers.
He was included in a Scotland under-17 training squad and made a try-scoring debut at under-18 in the game against England under-18 at Kingston Park in March 2015.
Graham was then named in the Scotland under-20 squad for the 2016 Six Nations, where he made his debut for the senior age-grade side in the 24-6 defeat of England in the Championship opener.
In January 2017, he was named in the Scotland U20 team that would compete at the 2017 Six Nations tournament.
Graham earned his first cap for Scotland coming off the bench against Wales in Cardiff for the Doddie Weir Cup in November 2018.
He made his second appearance for Scotland against France in the 2019 Six Nations and went on to earn his first start and score his first try in the fourth round of the championship against Wales.
Nephew of 24-times capped lock Scott MacLeod, Graham was added to Scotland's squad for the 2020 Six Nations tournament before a knee injury ruled him out of the opening two matches.
As of June 2020, Graham has made 30 appearances and has scored 75 points for Edinburgh.
In May 2021, he signed a new undisclosed deal with the club.
Graham has been selected to play for Scotland ahead of the Rugby World Cup 2023.
ML June 2023
|2017 - present|
|2018 - present|
|2016 - 2018|
|2017 - 2018|