Dillard, Presiding Judge. Yash Solutions, LLC appeals the trial court’s partial grant of summary judgment to New York Global Consultants Corporation (“NYG”) as to its breach-of-contract claim, as well as the denial of its breach-of-contract counterclaim—all related to non-compete and payment clauses. Yash also maintains that, at the subsequent jury trial, the jury erred in awarding attorney fees to NYG for bad faith and stubborn litigiousness, and the trial court erred in denying its motion for a new trial. For the reasons set forth infra, we affirm.[1] Viewing the summary-judgment evidence in the light most favorable to Yash (i.e., the nonmovant) and the evidence presented at trial in the light most favorable to the jury’s verdict,[2] the record shows that NYG was formed in 2007 to provide information-technology consulting, software development, and project-management services. Similarly, Yash is an IT consulting and business-solutions firm, “providing business consulting and staffing solutions to its [c]lients through the placement of consultants and professionals.” Particularly relevant here, Yash and NYG both recruit and screen IT consultants to place with other companies. To that end, on January 31, 2013, NYG and Yash entered a Master Supplier Agreement (“MSA”), under which NYG agreed to provide its own IT consultants to Yash, and Yash agreed to facilitate placements for those consultants with its clients. Under Article v. of the MSA, when Yash successfully makes such a placement, NYG is required to submit an invoice to Yash within 45 days, but Yash has no obligation to pay the invoice until it first receives payment from its client for the consultant. Yash made its profits by billing clients at a 25 percent markup above the amount it paid NYG. Additionally, the parties executed addendums governing NYG and Yash’s arrangement for placing consultants with specific Yash clients, including one named EMC.[3] The EMC addendum’s provisions regarding Yash’s payment of NYG’s invoices are substantially similar to those set forth in the MSA. But the EMC addendum specifically requires Yash to pay the amount due on an NYG invoice within five days of receiving payment from EMC—i.e., the “pay-when-paid” provision. The MSA also includes a non-compete clause (detailed infra), which essentially prohibits NYG from rendering the same or similar services that Yash provides under the MSA to its clients that are the subject of an addendum to the MSA. This prohibition applies during the term of the MSA and for one year following its termination. During the term of the MSA, Yash placed two NYG consultants—Vikram Rathi and Benedict Pinto—with EMC for various projects between March 2013 and February 2015. Initially, Yash paid NYG within five days of receiving payments from EMC in compliance with the MSA. But in October 2014, things changed. One of Rathi’s placements concluded, and Yash was informed that it could find him a new placement with EMC. Rathi declined this EMC placement, stating that “he did not want or he would find some reason not to accept that particular offer.” And shortly thereafter, Sumit Bagga—Yash’s operations manager—contacted Rathi’s accountant and discovered that he had already been placed with EMC for a new project. Then, on November 14, 2014, Rathi sent Bagga a message using an EMC email account, notifying Bagga that he was “working on a different project” and Bagga should contact NYG with any questions. On December 30, 2014, after learning of Rathi’s new EMC placement, Yash’s attorney sent a letter to NYG, alleging that NYG had breached the MSA’s non-compete clause by placing Rathi directly with EMC, rather than through Yash. The letter further instructed NYG to terminate Rathi’s “unauthorized placement” with EMC and cease any and all discussions with EMC about providing it with additional resources. At first, Bagga thought Rathi’s placement was the only one that violated the MSA, and as a result, Yash continued placing other NYG consultants in compliance with the terms of the agreement. But when Yash did not receive a response to its December 2014 letter, it refused to pay an invoice from NYG for Yash’s prior placement of Rathi with EMC for a project that occurred in August 2014. Yash declined to pay this invoice, even though it had already received payment from EMC for that placement. Then, in January 2015, Pinto—another NYG consultant who had been placed on EMC projects by Yash—was nearing the end of his contract for one of those placements, and he sent an email to Mukesh Molugu—the president of NYG—and Yash, giving them two weeks’ notice that he would be leaving the project. According to Molugu, Pinto told NYG that he did not want to work for Yash anymore due to phone calls that he was receiving from Bagga. But according to Bagga, Pinto informed Yash that NYG was pressuring him to leave the project and was not paying him properly. Nevertheless, Pinto submitted the necessary paperwork for Yash to place him with another company. And it was only sometime later that Yash discovered it could not place Pinto with that company because of the particular skills required. Then, after that “situation went south[,]” Pinto told Yash that direct placements through NYG were available to him. At this point, Bagga decided to investigate NYG’s placements of its consultants because he now knew that “ there was much more than just one [direct] placement going on.” So, on February 16, 2015, Yash’s attorney sent a second letter to NYG, addressing NYG’s direct placement of Pinto with EMC and demanding “strict compliance” with the MSA. Specifically, Yash contended that, under the non-compete clause, NYG was unauthorized to place Pinto directly with EMC, and in any event, NYG must notify Yash if that situation occurred. Although Yash notified NYG that Pinto’s recent placement violated the MSA, it did not inform NYG that it would no longer pay its invoices for any other pending placements. Nevertheless, Yash ceased paying NYG’s invoices for prior placements of Rathi and Pinto on EMC projects, even though EMC paid Yash for those placements. According to Bagga, Yash did not pay those invoices because NYG circumvented Yash in placing Rathi and Pinto directly with EMC. And unaware of Yash’s apparent belief that it was now exempt from complying with the MSA’s pay-when-paid provision, NYG representatives made phone calls and sent emails to Yash, inquiring as to why its invoices were not being paid. Yash ignored those entreaties and went radio silent. On March 10, 2015, after Yash refused to discuss its nonpayment of certain invoices, NYG filed a complaint, asserting two breach-of-contract claims based on Yash’s failure to comply with the MSA’s pay-when-paid provision and requesting expenses of litigation, including attorney fees. Yash filed an answer, asserting several affirmative defenses, as well as a breach-of-contract counterclaim based on NYG’s alleged breach of the MSA’s non-compete clause.[4] Following discovery, NYG filed a motion for summary judgment as to all of its claims and Yash’s counterclaim. Yash responded, filing a cross-motion for partial summary judgment as to its breach-of-contract counterclaim. Ultimately, on March 7, 2018, the trial court entered an order on the parties’ cross-motions for summary judgment. First, the court granted summary judgment to NYG on its breach-of-contract claims, finding that nothing in the MSA, including the non-compete provision, excused Yash from its obligation to pay NYG’s invoices for placements that had already occurred and for which Yash had been paid. But the court denied NYG’s claim for expenses of litigation and attorney fees under OCGA § 13-6-11, finding that there were genuine issues of material fact as to whether Yash acted in bad faith. Next, the court denied NYG’s claim for summary judgment as to Yash’s counterclaim, in which it alleged that NYG breached the non-compete restrictive covenant, finding that the claim was sufficiently pleaded to survive summary judgment. But the court also found that there were jury issues as to whether the MSA’s non-compete clause was enforceable. Additionally, the court determined that, even if it was enforceable, a jury must also decide whether Yash’s actions amounted to a waiver of the non-compete provision. Thereafter, the parties proceeded to a jury trial as to the claims that survived summary judgment, and ultimately, the jury entered a verdict in favor of NYG. Specifically, the jury found that, as to EMC, Yash waived NYG’s compliance with the MSA’s non-compete provision and that NYG was entitled to $83,146.20 in attorney fees because Yash acted in bad faith, was stubbornly litigious, or caused unnecessary trouble and expense. Yash now appeals both the summary-judgment order and the jury verdict. 1. The Jury Trial.[5] Yash challenges the jury’s determination that it waived enforcement of the MSA’s non-compete provision, as well as the jury’s award of attorney fees to NYG.[6] We will address each of these claims in turn. When a jury returns a verdict, the verdict must be affirmed on appeal if “there is any evidence to support it, and the evidence is to be construed in a light most favorable to the prevailing party with every presumption and inference in favor of sustaining the verdict.”[7] And we review a denial of a motion for a new trial “according to this same standard.”[8] Therefore, a jury verdict, “after approval by the trial court, and the judgment thereon will not be disturbed on appeal if supported by any evidence, in the absence of any material error of law.”[9] With this standard of review in mind, we turn to Yash’s specific claims of error. (a) Yash first contends that the jury’s finding it waived enforcement of the non-compete provision in the MSA was unsupported by the evidence. We disagree. Throughout this litigation, Yash essentially argued that NYG violated the non-compete clause in the MSA by placing its consultants directly with EMC instead of doing so exclusively through Yash, as required under the terms of the MSA. In relevant part, Article X (A) of the MSA provides: Noncompetition. [NYG] agrees that during the term of this Agreement, and for a period of 1-year following termination of this Agreement, regardless of the reason, [NYG] will neither directly nor indirectly (i) provide services that are the same or similar to those services provided under this Agreement or any Statement of Work for any client or clients that [NYG] has specifically executed any Addendum to provide services to said client or clients; (ii) communicate with those clients for the purpose of providing services, unless authorized to do so in writing by YASH; and (iii) induce, solicit or accept work from those specific clients. If [NYG] discovers that it has either unintentionally violated any of those restrictions or that any client or clients that have contacted [NYG] directly for the purposes of providing same or similar services [NYG] provided under this agreement, [NYG] will immediately notify YASH of this contact and refrain from any further contact with YASH’S client and decline to provide any services to the client.[10] According to Yash, because NYG executed an addendum specifically governing Yash’s placement of NYG consultants with EMC, NYG breached this non-compete provision by placing Pinto and Rathi directly with EMC, instead of through Yash. Yash further contends that this alleged breach exempted it from complying with the pay-when-paid provision of the MSA—i.e. paying NYG’s invoices within five days of receiving payment from EMC—as to those consultants. At the summary-judgment stage, as to Yash’s breach-of-contract counterclaim, the trial court concluded that there were genuine issues of material fact regarding whether the non-compete provision was enforceable, and if so, whether Yash waived enforcement of the provision by “continuing to operate under the MSA” after learning of the direct placements. As a result, those issues proceeded to trial, and ultimately, the jury found that “by a preponderance of the evidence[,] . . . [Yash] waived [NYG's] compliance with the [non-compete clause] in the [MSA] with [NYG].” As we have previously explained, waiver of a contract provision may be “express, or may be inferred from actions, conduct, or a course of dealing.”[11] Put another way, waiver of a contract right may “result from a party’s conduct showing his election between two inconsistent rights.”[12] Specifically, acting on the theory that the contract is still in force, “as by continuing performance, demanding or urging further performance, or permitting the other party to perform and accepting or retaining benefits under the contract, may constitute waiver of a breach.”[13] Nevertheless, all of the attendant facts, taken together, must “amount to an intentional relinquishment of a known right, in order that a waiver may exist.”[14] But significantly, when the evidence is in conflict, “the issue of waiver must be decided by the jury.”[15] Here, Yash presented evidence that—after it first discovered the direct placements in November 2014—its attorney sent two letters to NYG (one in December 2014 and the other in February 2015), asserting that NYG breached the MSA’s non-compete provision and demanding strict performance with the terms of the agreement. And while the letters demonstrated its intent to enforce the non-compete provision, Yash never pursued the contractual remedies available for it to do so. Indeed, as discussed in Division 2 (b) infra, the MSA expressly provides that, if NYG breached the non-compete provision, Yash was entitled to pursue any remedy in law or in equity, including injunctive relief. But Yash never sought injunctive relief or sued NYG for damages. Instead, Yash continued performing under the MSA and encouraging NYG to do the same for quite some time after learning of its alleged breach. Indeed, even after Yash’s attorney sent the aforementioned letters to NYG, Yash continued sending emails to NYG, asking it to submit candidates to Yash for placement. And at trial, Yash’s president admitted that, at least as of September 2016, two years after learning of NYG’s direct placements of Rathi and Pinto with EMC, “[Yash] continue[d] to promote placements [for] which [NYG] consultants are eligible to submit as a resource.” Significantly, when explaining why it continued to seek NYG consultants for new placements, Yash’s president testified that the MSA had never been terminated. Additionally, NYG’s president (Molugu) testified that Yash was still seeking to place its consultants at the time of trial in April 2018, several years after discovering NYG’s alleged breach of the non-compete provision in 2014. Simply put, the foregoing actions by Yash, including its express admission at trial that it believed the MSA was still in force, are evidence that supports the jury’s verdict as to waiver.[16] The jury was presented with conflicting evidence, then, regarding waiver. On the one hand, the two letters Yash sent to NYG shortly after it discovered the direct placements evinced its intent to enforce the non-compete provision. But there was also significant evidence of Yash’s conduct spanning years after it sent those letters from which the jury could infer that it intended to continue operating under the MSA and accept its benefits.[17] And because there was conflicting evidence regarding whether Yash intended to waive enforcement of the non-compete provision,[18] the question of waiver was for the jury, and not this Court, to decide.[19] Nevertheless, Yash argues that the jury’s verdict must be reversed because the MSA contains a “no-waiver” provision. Specifically, Article XIII (K) of the MSA provides that “[t]he failure of a party to enforce the provisions of this Agreement will not be a waiver of a provision or right of such party thereafter to enforce each and every provision of this Agreement.” But Yash concedes that, under Georgia law, a no-waiver or anti-waiver provision in a contract may itself be waived.[20] And here, the trial court instructed the jury regarding the no-waiver provision,[21] and the jury obviously concluded that Yash’s conduct of continuing to operate under the MSA’s terms and encouraging NYG to do the same for years after discovering the alleged breach was significant enough to constitute a waiver of that provision as well.[22] Simply put, because there is some evidence to support the jury’s verdict as to waiver, it must be affirmed.[23] (b) Yash next argues that there was a “dearth of evidence” to support the jury’s award of attorney fees under OCGA § 13-6-11. This claim likewise lacks merit. In Georgia, expenses of litigation and attorney fees may be awarded, under OCGA § 13-6-11, if “the factfinder determines the defendant has acted in bad faith, has been stubbornly litigious, or has caused the plaintiff unnecessary trouble and expense.”[24] And questions concerning bad faith, stubborn litigiousness, and unnecessary trouble and expense under OCGA § 13-6-11 are “generally questions for the jury to decide.”[25] Indeed, an award of attorney fees under OCGA § 13-6-11 is to be affirmed if “there is any evidence to support it.”[26] In support of its challenge to the attorney-fee award, Yash contends generally that there was no evidence it acted in bad faith, was stubbornly litigious, or caused NYG unnecessary trouble and expenses. But then, Yash provides a string of purported factual allegations regarding its “good faith” efforts to avoid litigation without a single citation to the record to support them. And given its failure to comply with our rules, we may decline to consider this claim of error.[27] Indeed, we have repeatedly cautioned litigants that “[a]ppellate judges should not be expected to take pilgrimages into records in search of error without the compass of citation and argument.”[28] To the contrary, the burden is upon the party alleging error to “show it affirmatively in the record.”[29] Suffice it to say, Yash has failed to satisfy this burden. And beyond presenting its unsupported version of the facts, Yash makes no discernable legal argument challenging the propriety of the attorney-fee award for this Court to address.[30] Furthermore, at trial, NYG argued to the jury that the specific bad-faith act justifying the attorney-fee award was Yash’s failure to pay its invoices when the MSA indisputably required it to do so. And while Yash contends that it made good-faith attempts to resolve its dispute with NYG without the need for litigation, it concedes that it did not comply with the pay-when-paid provision of the MSA, which was the basis for NYG initiating this litigation. Thus, in challenging the attorney-fee award, Yash fails to address the only act of bad faith presented to the jury. Regardless, this litigation was initiated based on Yash’s failure to make payments to NYG that it was obligated to pay under the MSA, and as explained in Division 2 (b), Yash had no justification, contractual or otherwise, for failing to do so. Under these circumstances, we cannot say that the jury’s attorney-fee award was not supported by at least some evidence.[31] 2. Summary Judgment. In two claims of error, Yash argues that the trial court erred by denying it summary judgment as to its breach-of-contract counterclaim against NYG, and granting summary judgment to NYG as to its direct breach-of-contract claim against Yash. We disagree on both counts. On appeal from the grant or denial of a motion for summary judgment, we review the evidence de novo, and “all reasonable conclusions and inferences drawn from the evidence are construed in the light most favorable to the nonmovant.”[32] Summary judgment is appropriate when “the moving party can show that there is no genuine issue of material fact and that the movant is entitled to judgment as a matter of law.”[33] And a defendant meets this burden when “the court is shown that the documents, affidavits, depositions[,] and other evidence in the record reveal that there is no evidence sufficient to create a jury issue on at least one essential element of the plaintiff’s case.”[34] Lastly, if the moving party satisfies this burden, “the nonmoving party cannot rest on its pleadings, but must point to specific evidence giving rise to a triable issue.”[35] With these guiding principles in mind, we turn to Yash’s specific claims of error. (a) Yash’s Breach-of-Contract Counterclaim. Yash first argues that the trial court erred in denying its motion for partial summary judgment as to its breach-of-contract counterclaim because NYG violated the express terms of the MSA’s non-compete provision by placing its consultants directly with EMC. Specifically, Yash contends that NYG breached Article X of the MSA by placing Rathi and Pinto—its own consultants—directly with EMC instead of making those placements through Yash in compliance with the terms of the agreement. In denying Yash’s motion for summary judgment as to that claim, the trial court found that there were jury questions as to the enforceability of this provision under OCGA § 13-8-50, and that even if this provision was enforceable, the jury would still need to determine whether Yash waived its right to enforce that provision through its conduct. As explained in Division 1 (a) supra, at the close of trial, the jury expressly found that Yash waived enforcement of the non-compete provision, and there was sufficient evidence to support that finding. And the Supreme Court of Georgia has held that after verdict and judgment, it is “too late to review a judgment denying a summary judgment, for that judgment becomes moot when the court reviews the evidence upon the trial of the case.”[36] Put another way, when a motion for summary judgment is “overruled on an issue and the case proceeds to trial and the evidence at the trial authorizes the verdict (judgment) on that issue, any error in overruling the motion for summary judgment is harmless.”[37] Thus, regardless of whether NYG breached the MSA’s non-compete clause, the jury found that Yash waived enforcement of that provision, rendering any error by the trial court at the summary-judgment stage harmless.[38] (b) Finally, Yash claims that the trial court erred in granting summary judgment to NYG as to its breach-of-contract claim, which was based on Yash’s failure to pay certain NYG invoices in violation of the MSA’s pay-when-paid provision. The construction of a contract is, of course, a question of law for the court,[39] and involves three steps.[40] First, we must decide whether “the language of the contract is clear and unambiguous.”[41] If it is, the contract must be “enforced according to its plain terms, and the contract alone is looked to for meaning.”[42] Next, if the language of the contract is “ambiguous in some respect,” the rules of contract construction “must be applied by the court to resolve the ambiguity.”[43] Lastly, if ambiguity remains after applying the rules of construction, “the issue of what the ambiguous language means and what the parties intended must be resolved by a jury.”[44] Indeed, the cardinal rule of contract construction is to “ascertain the intention of the parties,” as reflected by the language of the agreement.[45] As to NYG’s breach-of-contract claim, Yash asserts that its “cessation of performance” of the pay-when-paid provision was predicated on NYG’s breach of the MSA’s non-compete provision. But setting aside the waiver of its ability to enforce the non-compete clause, Yash fails to identify any language in the text of the MSA excusing it from complying with the EMC addendum’s pay-when-paid provision under any circumstances other than if Yash is not paid by its client,[46] much less language specifically conditioning payment on NYG’s compliance with the unrelated non-compete clause. This is because the MSA contains no such language. Indeed, the MSA’s non-compete clause, detailed in Division 1 (a) supra, lists all of the prohibited competitive conduct but makes no mention of Yash’s payment obligations under the contract. Yash also fails to acknowledge that Article XI of the MSA—which is titled “Remedies” and immediately follows the non-compete provision—provides that any violation of certain MSA provisions, including the non-compete clause, will result in “irreparable and continuing damage to YASH and Its Client,” and as a result, the remedies available at law for any breach or threatened breach of the MSA would be inadequate. Article XI further provides that, in addition to any other remedies available at law or in equity, Yash “shall be entitled to temporary, preliminary[,] and permanent injunctive relief, without the necessity of posting bond, and actual attorneys’ fees and costs in enforcing this Agreement.” Thus, the specific provision regarding the remedies available for a breach of the non-compete clause also makes no reference to the payment provisions of the MSA, much less any exemptions from paying NYG’s invoices. Nevertheless, Yash maintains that NYG’s competitive misconduct justified nonpayment of its invoices, and the jury should have been permitted to hear evidence of such misconduct at trial. But we have held that unless an ambiguity exists, the court “may not look outside the terms of the contract to consider surrounding circumstances or parol evidence.”[47] Indeed, when the language of the contract is clear and unambiguous, it will be “enforced according to its plain terms, and the contract alone is looked to for meaning.”[48] And here, because Yash’s payment obligations under the MSA were not ambiguous, any evidence of NYG’s misconduct was irrelevant in considering whether Yash breached the pay-when-paid provision. In sum, while Yash makes arguments based on “fairness,” it makes no attempt to identify any actual language in the contract to support its argument. Suffice it to say, this is fatal to its claim of error.[49] For all these reasons, we affirm the trial court’s grant of summary judgment to NYG and the jury’s verdict in its favor. Judgment affirmed. Gobeil and Hodges, JJ., concur.